Commentçamarche.net
CodeS-SourceS
Rechercher un code, un tuto, une réponse

Convertir un nombre en jour de l'année

0/5 (9 avis)

Snippet vu 27 866 fois - Téléchargée 11 fois

Contenu du snippet

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 / Exemple :


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 ;)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.