gpt4 book ai didi

PHP:以小时、分钟和秒为单位获取两个 DateTime 对象之间的差异

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:23 25 4
gpt4 key购买 nike

我正在尝试计算一个人在给定日期的工作小时数。为此,我需要获取两个 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 中得到答案)

最佳答案

正如 Scott 所建议的,但稍作调整,我们需要自己格式化它,但我们有漂亮的 sprintf 来帮助:

$start = new \DateTime("2016-09-28 14:26:17");
$end = new \DateTime("2016-09-30 09:53:53");

$interval = $end->diff($start);

$time = sprintf(
'%d:%02d:%02d',
($interval->d * 24) + $interval->h,
$interval->i,
$interval->s
);

关于PHP:以小时、分钟和秒为单位获取两个 DateTime 对象之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39795305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com