0

我有一个有点奇怪的问题,我有这个代码,如果第二次有 30 分钟或更长时间,它在输出时总是增加一小时。

$time1 = '12:00';
$time2 = '13:30';
list($hours, $minutes) = explode(':', $time1);
$startTimestamp = mktime($hours, $minutes);

list($hours, $minutes) = explode(':', $time2);
$endTimestamp = mktime($hours, $minutes);

$seconds = $endTimestamp - $startTimestamp;
$minutes = ($seconds / 60) % 60;
$hours = round($seconds / (60 * 60));

这里发生了什么事?

4

2 回答 2

2

记住数学。将区间 [0.5;1) 中的所有内容四舍五入等于 1。

round(0.5) = 1

这就是为什么在 [30;60] 的分钟内你有 +1 小时的时间。

于 2013-08-05T14:36:18.770 回答
1

而不是使用rounduse intvalas$seconds / (60 * 60)表达式总是返回一个浮点数,我们只需要该结果的整数部分

于 2013-08-05T14:38:33.273 回答