[PHP] Comment calculer l’intervalle de temps entre deux dates

L’équivalent en C# c’est ici :: Calculer un intervalle de temps en C#

Pour calculer la différence de temps entre deux dates en php il suffit d’utiliser la méthode diff et deux datetime.
La méthode diff nous renverra un objet dateinterval qui est très facilement manipulable pour obtenir des durées.




!!! Attention le calcul du nombre de jour total dans PHP 5.3.0 BUG. Le format ‘%a’ vous renverra tout le temps 6015.

Exemple:
Calcul du temps écoulé (pour calculer le temps d’exécution d’un programme en seconde).

<?php
$debut = new DateTime('now'); 
// Execution de code
$fin = new DateTime('now');
$interval = $debut->diff($fin);
echo $interval->format('Il s\'est écoulé  %R%S sec');
//-> Il s'est écoulé +02 sec
?>



Chrono Intervalletemps
Chronometre intervalle de temps

Exemple:
Calculer le nombre de jours entre deux dates.

<?php
$debut = new DateTime('2009-01-02'); 
// Execution de code
$fin = new DateTime('2009-01-05');
$interval = $debut->diff($fin);
echo $interval->format('Il s\'est écoulé  %R%d jours');
//-> Il s est écoulé +3 jours
?>


Exemple:
L’exemple suivant va vous permettre de tester si le nombre de jour est supérieur ou égal à 2 tout en gérant le bug du %a (Calcul du nombre de jour total).

if($interval->d >= 2 || $interval->m > 0 || $interval->y > 0 ){
echo ‘intervalle de temps supérieur ou égale à 2 jours’;
}else{
echo ‘intervalle de temps inférieur à 2 jours’;
}


Et pour en savoir plus il y a le manuel php http://php.net/manual/fr/datetime.diff.php



Et si vous avez envie d’aller plus loin avec php, je vous invite à lire :
[Programmation] Comment écrire l’instruction switch en php et d’autres langages


Point d’intérêt de cet article : Php, bug, calcul, temps.

Mots clefs liés à cet article:

  • php durée entre deux dates
  • différence entre deux dates php
  • php calculer différence entre 2 dates
  • php différence entre deux dates
  • calculer la différence entre deux dates php
  • php interval date
  • php date interval
  • interval date php
  • c# envoyer interval de temps
  • chrono

17 commentaires sur « [PHP] Comment calculer l’intervalle de temps entre deux dates »

  1. Bonjour,

    Si vous avez besoin d’éclaircissement sur ce que j’ai écris ou si vous n’êtes pas d’accord n’hésitez pas à m’en dire un peu plus. Je vous répondrais avec plaisir.

  2. Ok pour l’affichage de ce résultat, mais il semble qu’il n’y ait pas vraiment moyen de l’exploiter.
    En effet, je n’arrive pas à faire de comparaison avec…

  3. Pour cela il te suffit de faire :

    if($interval->d >= 2 ){
    echo ‘intervalle de temps supérieur ou égale à 2 jours’;
    }else{
    echo ‘intervalle de temps inférieur à 2 jours’;
    }

  4. Attention, vu que %a ne fonctionne pas si ton intervalle de temps est supérieur a 1 mois il faut que tu rajoutes la condition ‘ || $interval->m > 0 || $interval->y > 0’ dans ton if.

    Exemple:
    if($interval->d >= 2 || $interval->m > 0 || $interval->y > 0 ){
    echo ‘intervalle de temps supérieur ou égale à 2 jours’;
    }else{
    echo ‘intervalle de temps inférieur à 2 jours’;
    }

  5. Bonjour,
    moi je veux savoir comment on calcule le temps écoulé après avoir poster un commentaire comme sur facebook.
    ex: Posté il y a 02 minutes
    Posté il y a 1 jour 52 minutes
    Posté il y a environ 4 secondes
    etc…
    Qui peux m’aider?
    Merci.

  6. Bonjour,

    A priori , ils enregistrent la date et l’heure de l’envoie du commentaire en base de données.
    Ensuite, a l’affichage du commentaire ils n’ont plus qu’a faire une soustraction entre l’heure/date actuelle et celle de l’enregistrement.

    Cette soustraction peut être directement faites en sql, ou tout autre langage (php, c# …) qui permet de récupérer et afficher ces données.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.