在PHP中减去两个不同的时间

在PHP中减去两个不同的时间,php,date,time,Php,Date,Time,这似乎是一个相当简单的问题,但我有问题 在我的数据库中,有两个字段包含时间。假设一个字段名为clockin,读作“下午2:29:39”,另一个字段名为clockout,读作“下午2:29:39” 然后我还有两个字段,一个名为“breakin”,读作下午2:28:37,另一个名为“breakout”,读作“下午2:28:55” 我想从“闯入”中减去“突破”得到差值,然后取那个数字,从“打卡”和“打卡”之间的差值中减去它 我该怎么做?以下是我尝试过的: $clockout = new DateTim

这似乎是一个相当简单的问题,但我有问题

在我的数据库中,有两个字段包含时间。假设一个字段名为clockin,读作“下午2:29:39”,另一个字段名为clockout,读作“下午2:29:39”

然后我还有两个字段,一个名为“breakin”,读作下午2:28:37,另一个名为“breakout”,读作“下午2:28:55”

我想从“闯入”中减去“突破”得到差值,然后取那个数字,从“打卡”和“打卡”之间的差值中减去它

我该怎么做?以下是我尝试过的:

$clockout = new DateTime($row['clockout']);
$clockin = new DateTime($row['clockin']);



$diff = $clockout->diff($clockin);

$on_the_clock = sprintf('%d hours, %d minutes, %d seconds', $diff->h, $diff->i, $diff->s);


$breakin = new DateTime($row['breakin']);
$breakout = new DateTime($row['breakout']);

$diff2 = $breakout->diff($breakin);
$break = sprintf('%d hours, %d minutes, %d seconds', $diff2->h, $diff2->i, $diff2->s);
这给了我两个区别,但我不知道如何从另一个中减去一个


谢谢你的帮助

根据您现有的代码判断,我假设您使用该类运行PHP>5.3

在这种情况下,请退房。您可以使用它来减去从时钟中断返回的值。然后做“打卡入”和“打卡出”之间的区别。这将为您提供总的工作时间。

我已使用strotime()解决此类问题。它以Unix时间戳的形式生成纯数值。我对DateTime()没有经验,但我更喜欢Unix时间戳,因为它表示秒数,如果需要,可以使用date()将其转换回字符串或用户友好的格式

我发现在数据库中存储Unix时间戳也更容易操作。用户友好的格式在需要向用户显示之前是不必要的


[http://php.net/manual/en/function.strtotime.php][1]

嗯,我还是被它弄糊涂了。我已经在我的代码中这样做了,以创建两个时间差,但我不确定如何获得这些差异之间的差异:你能给我看一下示例代码吗?我似乎无法解决这个问题\