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

Résolu/Fermé
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

  • Votes
  • Date
  • Date décroissante
  1. 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 ;)
    1. bonsoir ,
      comment récupérer la diff des mois et années
      merci d'avance
    2. Bidon cette fonction , change l'année dans ta première date genre 2008 et tu retrouvera toujours le même nombre de jours ...
    3. 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;