begin process at 2012 05 27 22:30:19
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CONVERTIR UN NOMBRE EN JOUR DE L'ANNÉE

CONVERTIR UN NOMBRE EN JOUR DE L'ANNÉE


 Information sur la source

Note :
Aucune note
Catégorie :Date / Heure Classé sous :date, convertir Niveau :Débutant Date de création :22/07/2006 Vu :26 532

Auteur : bulzy

Ecrire un message privé
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

 Description

Pour le boulot j'avez besoin de convertir des dates dans un format du genre "06-234", qui correspond au 234ème jour de l'année 2006 en "22 août 2006" pour qu'il soit facilement lisible, j'ai donc créé une fonction pour ça. Je la partage en espérant que quelqu'un d'autre en aura besoin !
Je suis encore débutant en PHP, et c'est la 1er fonction que je poste, c'est pourquoi le code n'est peut-être et surement pas optimisé à son maximum, et j'attend donc vos critique (bonne comme mauvaise) pour m'aider.
Merci

Source

  • function jour_annee($jour, $annee)
  • {
  • if ($jour >= 1 AND $jour <= 366)
  • {
  • for ($i = 0; $i <= $annee; $i=$i+4)
  • {
  • if ($i == $annee)
  • {
  • $fevrier = 29;
  • }
  • else
  • {
  • $fevrier = 28;
  • }
  • }
  • $janvier = 31;
  • $fevrier = $janvier + $fevrier;
  • $mars = $fevrier + 31;
  • $avril = $mars + 30;
  • $mai = $avril + 31;
  • $juin = $mai + 30;
  • $juillet = $juin + 31;
  • $aout = $juillet + 31;
  • $septembre = $aout + 30;
  • $octobre = $septembre + 31;
  • $novembre = $octobre + 30;
  • $decembre = $novembre + 31;
  • switch ($jour)
  • {
  • case $jour >= 1 AND $jour <= 31:
  • $mois = 'janvier';
  • break;
  • case $jour >= $janvier + 1 AND $jour <= $fevrier:
  • $mois = 'fevrier';
  • $jour = $jour - $janvier;
  • break;
  • case $jour >= $fevrier + 1 AND $jour <= $mars:
  • $mois = 'mars';
  • $jour = $jour - $fevrier;
  • break;
  • case $jour >= $mars + 1 AND $jour <= $avril:
  • $mois = 'avril';
  • $jour = $jour - $mars;
  • break;
  • case $jour >= $avril + 1 AND $jour <= $mai:
  • $mois = 'mai';
  • $jour = $jour - $avril;
  • break;
  • case $jour >= $mai + 1 AND $jour <= $juin:
  • $mois = 'juin';
  • $jour = $jour - $mai;
  • break;
  • case $jour >= $juin + 1 AND $jour <= $juillet:
  • $mois = 'juillet';
  • $jour = $jour - $juin;
  • break;
  • case $jour >= $juillet + 1 AND $jour <= $aout:
  • $mois = 'aout';
  • $jour = $jour - $juillet;
  • break;
  • case $jour >= $aout + 1 AND $jour <= $septembre:
  • $mois = 'septembre';
  • $jour = $jour - $aout;
  • break;
  • case $jour >= $septembre + 1 AND $jour <= $octobre:
  • $mois = 'octobre';
  • $jour = $jour - $septembre;
  • break;
  • case $jour >= $octobre + 1 AND $jour <= $novembre:
  • $mois = 'novembre';
  • $jour = $jour - $octobre;
  • break;
  • case $jour >= $novembre + 1 AND $jour <= $decembre:
  • $mois = 'decembre';
  • $jour = $jour - $novembre;
  • break;
  • }
  • }
  • $date_converti = $jour . " " . $mois . " " . $annee;
  • return $date_converti;
  • }
function jour_annee($jour, $annee)
{
  if ($jour >= 1 AND $jour <= 366)
  {
    for ($i = 0; $i <= $annee; $i=$i+4)
	{
	  if ($i == $annee)
	  {
	    $fevrier = 29;
	  }
	   else
	   {
	    $fevrier = 28;
	   }
	}
	$janvier = 31;
	$fevrier = $janvier + $fevrier;
	$mars = $fevrier + 31;
	$avril = $mars + 30;
	$mai = $avril + 31;
	$juin = $mai + 30;
	$juillet = $juin + 31;
	$aout = $juillet + 31;
	$septembre = $aout + 30;
	$octobre = $septembre + 31;
	$novembre = $octobre + 30;
	$decembre = $novembre + 31;
    switch ($jour)
		{
		  case $jour >= 1 AND $jour <= 31:
		  $mois = 'janvier';
		  break;
		  case $jour >= $janvier + 1 AND $jour <= $fevrier:
		  $mois = 'fevrier';
		  $jour = $jour - $janvier;
		  break;
		  case $jour >= $fevrier + 1 AND $jour <= $mars:
		  $mois = 'mars';
		  $jour = $jour - $fevrier;
		  break;
		  case $jour >= $mars + 1 AND $jour <= $avril:
		  $mois = 'avril';
		  $jour = $jour - $mars;
		  break;
		  case $jour >= $avril + 1 AND $jour <= $mai:
		  $mois = 'mai';
		  $jour = $jour - $avril;
		  break;
		  case $jour >= $mai + 1 AND $jour <= $juin:
		  $mois = 'juin';
		  $jour = $jour - $mai;
		  break;
		  case $jour >= $juin + 1 AND $jour <= $juillet:
		  $mois = 'juillet';
		  $jour = $jour - $juin;
		  break;
		  case $jour >= $juillet + 1 AND $jour <= $aout:
		  $mois = 'aout';
		  $jour = $jour - $juillet;
		  break;
		  case $jour >= $aout + 1 AND $jour <= $septembre:
		  $mois = 'septembre';
		  $jour = $jour - $aout;
		  break;
		  case $jour >= $septembre + 1 AND $jour <= $octobre:
		  $mois = 'octobre';
		  $jour = $jour - $septembre;
		  break;
		  case $jour >= $octobre + 1 AND $jour <= $novembre:
		  $mois = 'novembre';
		  $jour = $jour - $octobre;
		  break;
		  case $jour >= $novembre + 1 AND $jour <= $decembre:
		  $mois = 'decembre';
		  $jour = $jour - $novembre;
		  break;
		}
  }
  $date_converti = $jour . " " . $mois . " " . $annee;
  return $date_converti;
}

 Conclusion

Si vous avez des propositions pour l'améliorer n'hésitez pas ;)


 Sources de la même categorie

Source avec une capture AGENDA GRAPHIQUE SIMPLE (DÉBUTANT) À INTÉGRER par NicomakM
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CALENDRIER EN 70 LIGNES par tchconst
Source avec Zip CALENDRIER par gabay
CALENDRIER SIMPLE par manuche

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture CONVERTIR BASE FIREBIRD EN MYSQL par castelfrederic29
CALCUL DU NOMBRE DE JOURS CONTENUS DANS L'INTERSECTION DE DE... par curphey
CONVERSION DATE FORMAT ANGLAIS-FRANÇAIS + HEURE par shortz
Source avec Zip CONVERTISSEUR CHIFFRES ARABES CHIFFRES ROMAINS ET DATE ROMAI... par juju1er
CONVERSION DATE par hooss

Commentaires et avis

Commentaire de Sannazzarotiti le 23/07/2006 08:02:25

en fait sa sert a quoi? les timestamps et les fonctions qui vont avec existe non?

Commentaire de jeca le 23/07/2006 10:57:00

En plus court :

<?php
setlocale(LC_TIME, 'FR');

$nombre = '06-234';
list($annee, $numeroJour) = explode('-', $nombre);
$annee = '20' . $annee;
$timestampPremierJanvier = strtotime($annee . '-01-00');
$timestampJour = $timestampPremierJanvier + ($numeroJour * 86400);

echo strftime('%A %d %B %Y', $timestampJour) . '<br>';
?>

Commentaire de coucou747 le 24/07/2006 14:03:52 administrateur CS

euh... l'utilisation des tableaux est préférable

Commentaire de jeca le 25/07/2006 13:52:06

Puisque 'setlocale()' ne semble pas convenir :

<?php
$lesJours = array('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi');
$lesMois = array(
1 => 'janvier', 2 => 'février', 3 => 'mars', 4 => 'avril',
5 => 'mai', 6 => 'juin', 7 => 'juillet', 8 => 'août',
9 => 'septembre', 10 => 'octobre', 11 => 'novembre', 12 => 'décembre'
);

$nombre = '06-234';
list($annee, $numeroJour) = explode('-', $nombre);
$annee = '20' . $annee;
$timestampPremierJanvier = strtotime($annee . '-01-00');
$timestampJour = strtotime('+' . $numeroJour . 'days', $timestampPremierJanvier);
list($jour, $mois, $jourMois) = explode(' ', date('w n d', $timestampJour));

echo $lesJours[$jour] . ' ' . $jourMois . ' ' . $lesMois[$mois] . ' ' . $annee;
?>

Commentaire de Sannazzarotiti le 25/07/2006 15:08:14

qq peut me repondre

Commentaire de jeca le 25/07/2006 15:26:06

Toutes les réponses à tes problèmes existenciels avec php ici :
http://www.php.net/manual/fr/

Commentaire de Sannazzarotiti le 25/07/2006 15:27:45

dsl mais c'est hors sujet. le manuel a rien a voir. SUffit de regarder le premier commentaire:

>>>en fait sa sert a quoi? les timestamps et les fonctions qui vont avec existe non? <<<

Commentaire de jeca le 25/07/2006 15:35:07

Dans ce cas, tu poses ta question en Français, car moi pas comprendre

Commentaire de Sannazzarotiti le 25/07/2006 15:39:06

en fait sa sert a quoi? -> la sources (de quoi d'autre)

les timestamps et les fonctions qui vont avec -> les timestamps c'est tout ce qui est le temps (en gros)

existe non? -> veut dire qu'elle sont la pour quelque chose.

Toi comprendre francais sinon toi probleme comprendre

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Convertir une Date au format Timestamp [ par Touf ] Salut !J'ai un petit pb : j'accède à une Date stockée dans une bdd mysql sous la forme (timestamp) "YmdHis" : 20020608105031J'aimerais l'afficher sous convertir date française en timestamp [ par dreaman ] Bjour,j ai une date&nbsp;avec ce format "17/01/2005&nbsp; 16:33:14" et je voudrai la transformer en timestamp. Please, c'est un petit probleme mais il convertir date 10/12/2005 10:12:50 en timestamp [ par mictif ] Bonjour, j'aimerai convertir une date sous la forme : '10/12/2005 10:12:50' en timestamp pour mysql mais je n'y arive pas... si quelqu'un peut m'aider convertir une date dd/mm/aaaa en aaaa-mm-dd [ par aquewel ] mon probleme est dans le titreje trouve rien rien ne marche si vous pouviez m'aider a trouver le chemin ca serait cool !!!! merci convertir une date... [ par astyax ] Salut à tous,voilà, j'aimerai savoir comment réussir à convertir une date qui apparait comme ça:Wed, 10 Nov 2004 13:05:41 +0100en une date comme ça :1 Convertir TimeStamp en date dans un tableau excel [ par dreaman ] Convertir TimeStamp en date dans un tableau excel basic Convertir une date [ par RM50Man ] Comment fait on pour convertir une date que je sors de ma base de donn&#233;e,au format francais par exemple.J aimerais convertir cette date au format Convertir une date en français [ par malaysia ] Bonsoir,J'ai pass&#233; l'apr&#232;s-midi sur un truc tout b&#234;te je suppose mais que je n'arrive pas &#224; r&#233;soudre. Je r&#233;cup&#232;re u Convertir une date [ par kangoo75 ] Bonjour, Je suis ultra d&#233;butant en PHP, et j'aimerais savoir la fonction pour transformer une date par exemple : 25-12-2005 en lundi 25 d&#233;ce convertir un nombre en timestamp [ par Vautour013 ] bonjour,je dois calculer une date &#224; partir du 1er janvier de l'ann&#233;e en cours + un certain nombre de mois.je voudrais convertir ce nombre de


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales