2011-10-06 97 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