Version complète: sur le forum Webmaster Hub : difference entre 2 date
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
choklata
comment faire la difference entre 2 date
exemple:
15/02/2006-12/01/2006=? jours
le resultat du difference est donné par nombre de jour
svp aider moi avec un cas generale et merci pour l'aide
Himself
Nombre de jours entre deux dates
TheRec
Bonsoir,

cela te donne le nombre de jour(s) entier(s) entre deux dates (peu importe celle qui est plus élevé que l'autre (utilisation de abs) :
CODE
<?php
 function datediff($timestamp1,$timestamp2) {
   return intval(abs($timestamp1-$timestamp2)/86400);
 }
 
 function date_uk2iso($date) {
   return join("-",array_reverse(explode("/",$date)));
 }
 
 $date1 = date_uk2iso("15/02/2006");
 $date2 = date_uk2iso("15/01/2006");
 echo datediff(strtotime($date1),strtotime($date2));
?>

Explications : dans datediff on trouve la différence entre deux timpestamps UNIX, ce qui donne un résultat en secondes, on divise donc par : 60 (secondes) * 60 (minutes) * 24 (heures) = 86400
intval set a ne récupérer que la valeur entière du résultat (les minutes et seconde du dernier jour entamé ou non ne t'intéressent pas, sauf erreur).

La fonction date_uk2iso sert à convertir la date dans le format que tu as fourni (Grande-Bretagne)... La date est scindée par les "/", le tableau retourné et renversé et join à nouveau par des "-"...cela correspond à une date ISO 8601 (YYYY-MM-DD) et grâce à cette conversion tu peux utiliser la fonction strtotime qui permet d'obtenir un timestamp depuis une date au format "English" ou ISO...
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.