Dev*_*Wol 3 php laravel eloquent laravel-5.1
我有一个应用程序,它及时登录记录和退出记录的时间.
我的表有IN_TIME和OUT_TIME
这些列中的数据示例:
IN_TIME = 16:06:46
OUT_TIME = 16:08:07
我有一个控制器,我的刀片模板文件显示给定人员的所有信息,我想要做的是显示两者之间的时差.
请参阅下面我当前显示0的当前代码
**Time onsite:** {{ date('G:i', strtotime($attrec->out_time)) - date('G:i', strtotime($attrec->in_time)) }}
Run Code Online (Sandbox Code Playgroud)
我有没有理由不能得到正确的数字?
您正在将时间戳转换为格式化字符串并尝试计算字符串之间的差异.相反,您应该计算每个结果datetotime(返回基本上是秒的UNIX时间戳)之间的差异,然后格式化该结果:
{{ date('G:i', strtotime($attrec->out_time) - strtotime($attrec->in_time)) }}
Run Code Online (Sandbox Code Playgroud)
您还可以Carbon通过执行以下操作来使用:
{{ (new Carbon($attrec->out_time))->diff(new Carbon($attrec->in_time))->format('%h:%I') }}
Run Code Online (Sandbox Code Playgroud)
这使用diff继承自的方法DateTime,该方法返回一个DateInterval实例.格式字符DateInterval::format与使用的格式字符不同date.这就是格式化字符串的原因%h:%I,相当于G:i.
上面的代码将输出:
0:01
Run Code Online (Sandbox Code Playgroud)
因为您选择格式化小时而没有前导零,并且两个时间戳之间的差异是一分钟(以及一些未显示的备用秒,因为它们未包含在格式化字符串中).
| 归档时间: |
|
| 查看次数: |
5073 次 |
| 最近记录: |