DateTime差异显示分钟超过60,而不是增加一个小时?

时间:2019-06-05 15:26:15

标签: php

我需要处理两次日期(H:i:s)格式之间的差。我使用下面的代码进行了此操作,但是它显示了分钟数超过60的总小时数,例如36.73,应该是37.13。

我在系统中有两次时钟:clock_in_time和clock_out_time都是使用date(H:i:s)创建的。为了计算出差异,我在这里四处查看,发现最好的方法是转换两个日期时间对象,然后使用diff和format来获得差异,然后遍历每一天的时间并添加前几天的总计小时数,以得出每月总计。在$ data下面的代码中,是一个月中每个工作日的in_times和out_times数组。

$total = 0;
foreach ($data as $time) {
   $in = new DateTime($time['clock_in_time']); 
   $out = new DateTime($time['clock_out_time']); 
   $interval = $in->diff($out);
   $elapsed = $interval->format('%h.%i ');
   $total = $total + $elapsed;
}

我希望它可以像36.3一样显示小时数,但是相反,它会在小时数滴答之前的分钟数中将其加到100,并显示为36.72,请参见下图:

https://ibb.co/v10cnR2

0 个答案:

没有答案