我用的是拉拉和碳库。我想在几个小时内有不同的时间。但是diffInHours返回零。
$_startTime = $startTime = \Carbon\Carbon::parse('2018-09-18 21:12:35');
$finishTime = $_startTime->addHours(10);
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);// 0发布于 2018-09-19 07:18:57
请试试下面的代码
$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,因为它是一个碳对象--附加到该对象的任何方法都将修改它的所有当前对象。
发布于 2018-09-19 07:18:05
在您的代码中,当您执行$ startTime ->addHours( 10 )并将其分配给finishTime时,startTime也会添加10个小时,然后分配给finishTime。所以在这个过程中,两者是一样的,当你把它们分开的时候,结果是零。因此,您需要分别维护两个变量,如下所示,希望这对您有所帮助。
$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);// 10https://stackoverflow.com/questions/52400008
复制相似问题