gpt4 book ai didi

php - Laravel 5 时差

转载 作者:可可西里 更新时间:2023-11-01 00:41:40 27 4
gpt4 key购买 nike

我有一个应用程序,它在登录时记录时间,在退出时记录退出时间。

我的表有 IN_TIME 和 OUT_TIME

这些列中的数据示例:

IN_TIME = 16:06:46

结束时间 = 16:08:07

我有一个 Controller ,我的 Blade 模板文件显示给定人员的所有出席情况,我想做的是显示两者之间的时差。

请参阅下面我当前显示 0 的当前代码

**Time onsite:** {{ date('G:i', strtotime($attrec->out_time)) - date('G:i', strtotime($attrec->in_time)) }}

有什么原因导致我无法得到正确的数字吗?

最佳答案

您正在将时间戳转换为格式化字符串并尝试计算字符串之间的差异。相反,您应该计算每个 datetotime 的结果之间的差异(它返回本质上是秒的 UNIX 时间戳),然后格式化该结果:

{{ date('G:i', strtotime($attrec->out_time) - strtotime($attrec->in_time)) }}

您还可以使用 Carbon通过执行以下操作:

{{ (new Carbon($attrec->out_time))->diff(new Carbon($attrec->in_time))->format('%h:%I') }}

这使用方法 diff继承自 DateTime,它返回一个 DateInterval 实例。 DateInterval::format 的格式化字符与 date 使用的不同.这就是格式化字符串为 %h:%I 的原因,它等同于 G:i

上面的代码会输出:

0:01

因为您选择格式化小时而不带前导零,并且两个时间戳之间的差异是一分钟(以及一些未显示的空闲秒数,因为它们未包含在格式化字符串中)。

关于php - Laravel 5 时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34616429/

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