2011-10-06 100 views
0

我應該準確的72小時,但它給了我72小時12秒......爲什麼?PHP模數部分計算不正確 - 鍵盤提供

http://codepad.org/KNj44By5

+0

技術上的每一天是不完全的24小時。這就是我們閏年的原因。 –

+0

所以你說這個例子會帶來問題?我使用這個來計算工作時間,並且我需要一個計算來增加一個星期,一個月的總小時數,不管怎樣(超過23:59:59)。 – Oseer

回答

3

因爲你的數學是錯誤的。 $elapsed將在幾秒鐘內完成,因此您不需要在取模之前將其分開。你真正得到的是小時%60

模它將工作是這樣的:

$in = strtotime("2011-10-02 23:00:00"); 
$out = strtotime("2011-10-05 23:00:00"); // 72 hours apart 

$elapsed = $out - $in; 

$hours = floor($elapsed/3600); 
$minutes = floor(($elapsed/60) % 60); 
    if (strlen($minutes) == "1") { $minutes = "0".$minutes; } // No single digits 

$seconds = $elapsed % 60; 
    if (strlen($seconds) == "1") { $seconds = "0".$seconds; } // No single digits 

$total = $hours.":".$minutes.":".$seconds; // Should be 72:00:00 

echo $total 

編輯

您也搞砸了你的補零。您將2轉換爲20

更新這裏鍵盤:http://codepad.org/XY8L9EJ1

+0

謝謝澄清....是的,我只是注意到零的問題:) – Oseer