2011-10-19 3 views
0

J'ai essayé d'utiliser DateTime en PHP et j'ai utilisé la méthode diff pour trouver le décalage horaire entre un horodatage et l'heure actuelle. Cependant PHP me donne la mauvaise différence. Quelqu'un peut-il me signaler ce qui s'est mal passé dans mon code? Merci!Calcul des différences de temps

Code PHP

function time() { 
    $now = new DateTime; 
    $later = new DateTime('2011-10-17 07:08:00'); 
    $interval = $now->diff($later); 
    echo $now->format('y m d'); 
    echo "<br>"; 
    echo $later->format('y m d'); 
    echo "<br>"; 
    echo $interval->format('%a'); 
} 

de sortie

11 10 19 
11 10 17 
6015 

La différence est évidemment 2 jours, mais je reçois 6015 jours!

Répondre

2

Vous faites $now->diff($now);, devrait être $now->diff($later).

+0

belle prise! Malheureusement je me suis coincé en essayant ce code sur PHP 5.2 :(Erreur fatale http://codepad.org/aHVVr065 – DhruvPathak

+0

Merci! Je l'ai corrigé et maintenant il donne encore 6015 comme différence! – Nyxynyx

+2

echo $ interval-> format ('% a '); changé en echo $ interval-> format ('% d '); – aslingga

0

comme il est écrit, le résultat devrait être 0, parce que vous faites $ maintenant-> diff ($ maintenant)

Si vous faites $ plus tard-> diff ($ maintenant), vous devriez obtenir le résultat escompté.