错误的时间计算超过30分钟

时间:2013-08-05 14:32:34

标签: php time calculator

我有一个奇怪的问题,我有这个代码,如果第二次有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));

这里发生了什么?

2 个答案:

答案 0 :(得分:2)

记住数学。区间[0.5; 1]中的所有内容等于1。

round(0.5) = 1

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

答案 1 :(得分:1)

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