我正在使用laravel和carbon库。 我想在几个小时内得到不同的时间。 但是diffInHours返回零。
$_startTime = $startTime = \Carbon\Carbon::parse('2018-09-18 21:12:35');
$finishTime = $_startTime->addHours(10);
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);// 0
答案 0 :(得分:2)
请尝试以下代码
$startTime = Carbon::parse('2018-09-18 21:12:35');
$finishTime = Carbon::parse($startTime)->addHours(10);
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);
注意:因为$ startime会使用addHours(10)修改开始时间,因此请再次对其进行解析。
说明:
$startTime = Carbon::parse('2018-09-18 21:12:35');
在此创建了碳对象。
$finishTime = Carbon::parse($startTime)->addHours(10);
如果我使用以下代码修改$finishTime
$startTime = Carbon::parse('2018-09-18 21:12:35');
$finishTime = $startTime->addHours(10);
仅dd($startTime,$finishTime)
就可以看到$startTime
和$finishTime
都输出相同的数据。
这里$startTime
创建了一个碳对象,我们需要再次解析$startTime
,因为它是一个碳对象,任何附加到此对象的方法都会修改其所有当前对象。
答案 1 :(得分:1)
$startTime = \Carbon\Carbon::parse('2018-09-18 21:12:35');
$finishTime = \Carbon\Carbon::parse('2018-09-18 21:12:35');
$finishTime->addHours(10);
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);// 10