我正在尝试计算一个人在某一天工作的小时数。为此,我需要获取两个DateTime对象之间的小时数、分钟数和秒数的差异。到目前为止,我可以像这样成功地实现:
$timeIn = new DateTime($time['timeIn']);
$timeOut = new DateTime($time['timeOut']);
$time['hours'] = date_diff($timeIn, $timeOut) -> format("%H:%i:%s");
这个方法看起来很好,直到我测试了员工忘记打卡的情况。现在假设
$timeIn = '2016-09-28 14:26:17'
$timeOut = '2016-09-30 09:53:53'
在这种情况下,差异应该是43:27:36(因为timeIn和timeOut之间有超过一天的时间)。但实际上我得到的是19:27:36(好像只是截断了天数并返回其余部分)。如何将那一天加到小时上而不是截断它? (我想要的是43:27:36,而不是1天19小时等等。所以我想要以HH:MM:SS的格式获得答案)
HH:MM:SS
还是可以接受在前面加上天数,例如DD HH:MM:SS
? - R. Chappell