TUTORIELS 
Manipulation de la date avec PHP

Page 1 | 2

Elémentaire, mon cher Watson, l'affichage de la date ? Opération basique, certes, mais qui s'assortit d'une multitude d'options qu'il est préférable de manipuler correctement.
 (15 septembre 2003)
 

Différence entre deux jours
L'usage des timestamp UNIX nous permet maintenant de calculer le temps existant entre deux instants : il suffit de soustraire un timestamp à l'autre, de diviser par 86400 (60 * 60 * 24 - on convertit le nombre de secondes en nombre de jours), et de renvoyer la valeur absolue du résultat :

function diff2jours($jj, $mm, $aaaa, $jj2, $mm2, $aaaa2)
  {
  $userDate = mktime(0,0,0,$mm,$jj,$aaaa);
  $userDate2 = mktime(0,0,0,$mm2,$jj2,$aaaa2);
  return abs(intval( ($userDate - $userDate2) / (86400) ));
  }

intval() réalise une troncature du nombre au niveau de la virgule.
abs() renvoi la valeur absolue.

Ainsi :
<?=diff2jours(14,07,2003,25,12,2003);?> donne 164 jours.

Temps restant avant une date donnée
Facile à construire à partir de diff2jours(). Voici le nombre de jours
restant avant Noël, par exemple :

<?=diff2jours(date(d),date(m),date(Y),25,12,2003);?> donne 104 jours.

Il est plus simple de construire un fonction dédiée :

function tempsRestant($jj,$mm,$aaaa)
  {
  $aujourdhui = mktime(0,0,0,date("m"),date("d"),date("Y"));
  $dateFuture = mktime(0,0,0,$mm,$jj,$aaaa);
  return intval( ($dateFuture - $aujourdhui) / (86400) );
  }

Temps écoulé depuis une date donnée (= calcul de l'âge)
Même principe que précédemment :

function age($jj,$mm,$aaaa)
  {
  $aujourdhui = mktime(0,0,0,date("m"),date("d"),date("Y"));
  $naissance = mktime(0,0,0,$mm,$jj,$aaaa);
  return intval( ($aujourdhui-$naissance) / (86400) );
  }

Quel jour êtes-vous né ?
Pour terminer, un petit truc pour retrouver son jour de naissance:

<?=date("l", mktime(0,0,0,04,21,1977));?>

Page 1 | 2

 
[ Xavier Borderie,JDNet
 
Accueil | Haut de page