我有一个奇怪的问题,我有这个代码,如果第二次有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));
这里发生了什么?
答案 0 :(得分:2)
记住数学。区间[0.5; 1]中的所有内容等于1。
round(0.5) = 1
这就是为什么你在[30; 60]的分钟内+1小时。
答案 1 :(得分:1)
而不是使用round
使用intval
作为$seconds / (60 * 60)
表达式总是返回一个浮点数,我们只需要该结果的整数部分