2011-06-07 52 views
2

我想顯示時間x開始,時間x完成,以及x完成多長時間。我有開始和結束正確顯示,但下面的減法給我一個瘋狂的答案。PHP時間減法不起作用

// to unix timestamps for subtraction 
    $startTime = strtotime($row['bp_rec_start']); 
    $endTime = strtotime($row['bp_rec_end']); 
    $timeTaken = $endTime - $startTime; 

    //back to date formats 
    $startTime = date('H:i',$startTime); 
    $endTime = date('H:i',$endTime); 
    $timeTaken = date('H:i',$timeTaken); 

例如, (1點24分 - 1時23 = 07:01)

由於

回答

4

時間戳是自1970年以來秒,每個時間戳表示在時間上絕對。所以$endTime - $startTime產生一些時間點,如1975-04-12 07:01:52。打印小時和分鐘的部分當然會打印07:01。時間戳本身雖然是在幾秒鐘的差別,所以你可以這樣做:

echo "Difference: $timeTaken seconds"; 

你當然應該考慮DateInterval(看第三個例子)。