我需要处理两次日期(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,请参见下图: