2011-10-19 13 views
0

PHPでDateTimeを試してみましたが、diffメソッドを使用してタイムスタンプと現在の時間の時間差を求めました。しかし、PHPは私に間違った違いをもたらします。私のコードで何が間違っているのか誰かが私に指摘できますか?ありがとう!時差の計算

11 10 19 
11 10 17 
6015 

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'); 
} 

出力の違いは明らかに2日間ですが、私は6015日を取得します!

答えて

2

$now->diff($now);は、$now->diff($later)である必要があります。あなたは(今$)$ NOW->差分をやっているので、

書かれたよう
+0

いいキャッチ!悲しいことに、私はPHP 5.2でこのコードを試していませんでした:(致命的なエラーhttp://codepad.org/aHVVr065 – DhruvPathak

+0

ありがとう!私はそれを修正し、今でも6015を差として与えます! – Nyxynyx

+2

echo $ interval-> format ''%a ');エコーに変更されました$ interval-> format('%d '); – aslingga

0

、結果はあなたが$ later->デフ(今$)を行う場合は、期待される結果を取得する必要があります

、 を0にしてください。