[PHP] Calcul du temps écoulé entre 2 dates

Résolu/Fermé
freeman034 - 6 nov. 2005 à 22:03
 haha - 16 avril 2013 à 15:03
Bonjour à tous,
Je voudrais savoir si quelqu'un peut m'aider à calculer le temps écoulé entre 2 dates, par exemple une date $date et le jour présent.

Je sais qu'il faut faire un timestamp pour les 2 dates après les convertir en secondes, les soustraires et les reconvertir en mois et années mais j'y arrive pas... quelqu'un peut me donner un exemple concrêt svp ? Merci !

19 réponses

Franchement je crois qu'il vaut mieux passer un peu de temps sur la doc PHP plutôt que se taper des lignes de code comme ça !

Il existe une méthode diff (de la classe DateTime) qui permet de calculer directement un intervalle. Après avec l'intervalle on peut récupérer ce qu'on veut : le nombre de jours, de secondes, etc.

Voilà un exemple d'utilisation avec des chaines du genre : '2009-06-08 20:30:00'


$d1 = new DateTime('2009-06-08 20:30:00');
$d2 = new DateTime('2009-06-10 20:30:00');
$diff = $d1->diff($d2);

$nb_jours = $diff->d;

Voilà j'espère que ça aura servit à quelqu'un ;)
83
bonsoir ,
comment récupérer la diff des mois et années
merci d'avance
0
Bidon cette fonction , change l'année dans ta première date genre 2008 et tu retrouvera toujours le même nombre de jours ...
0
print_r($diff)
0
Utilisateur anonyme
7 déc. 2012 à 11:01
Attention, pour avoir le nombre de jours réels, il ne faut pas utiliser "d" mais "days". "d" n'est à utiliser que si on utilise également "y", "m", etc... car il soustrait le nombre de mois et d'années.

Il ne faut donc pas utiliser :

$nb_jours = $diff->d;

mais :

$nb_jours = $diff->days;
0