我有两个字段 Mysql数据库中的开始时间和结束时间。 我想在Laravel中计算视图内的持续时间。 所以我写道:
{{ $date1=date('G:i',strtotime($timeSlot->beginningTime)) }}
{{ $date2=date('G:i',strtotime($timeSlot->endingTime)) }}
{{ $date2-$date1 }}
我的问题是: 差异只给我几小时的差异没有分钟...
感谢您的帮助
答案 0 :(得分:2)
你可以使用碳。刚刚测试过,效果很好:
$difference = Carbon::parse($timeSlot->beginningTime)->diff(Carbon::parse($timeSlot->endingTime));
在视图中:
{{ $difference->h }}:{{ $difference->i }}
如果你cast dates,你甚至不需要解析:
$difference = $timeSlot->beginningTime->diff($timeSlot->endingTime);
答案 1 :(得分:1)
在视图中包含逻辑是不好的做法。
使用carbon
并将数据从控制器传递到视图。
$date1 = Carbon::parse(date('G:i',strtotime($timeSlot->beginningTime)));
$date2 = Carbon::parse(date('G:i',strtotime($timeSlot->endingTime)));
$totalDuration = $date1->diffInSeconds($date2);
然后使用gmdate
:
$exactDuration = gmdate('H:i:s', $totalDuration);
// 00:00:21
然后,您可以将此$exactDuration
传递给您的视图并在那里使用。