我应该得到正好 72 小时,但它给了我 72 小时 12 秒......为什么?
问问题
381 次
1 回答
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
于 2011-10-06T17:45:08.403 回答