Php diffInHours函数返回零碳

Php diffInHours函数返回零碳,php,laravel,php-carbon,Php,Laravel,Php Carbon,我用的是拉威尔和碳库。 我想在几个小时内得到不同的时间。 但Diffinihours返回零 $_startTime = $startTime = \Carbon\Carbon::parse('2018-09-18 21:12:35'); $finishTime = $_startTime->addHours(10); $totalDuration = $startTime->diffInHours($finishTime); dd($

我用的是拉威尔和碳库。 我想在几个小时内得到不同的时间。 但Diffinihours返回零

$_startTime = $startTime = \Carbon\Carbon::parse('2018-09-18 21:12:35');
            $finishTime = $_startTime->addHours(10);
            $totalDuration = $startTime->diffInHours($finishTime);

dd($totalDuration);// 0

在代码中,当您执行$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);// 10

在代码中,当您执行$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);// 10

请尝试下面的代码

$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = Carbon::parse($startTime)->addHours(10); 
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);
$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = $startTime->addHours(10);
注意:再次解析$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 = Carbon::parse($startTime)->addHours(10); 
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);
$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = $startTime->addHours(10);
只要
dd($startTime,$finishTime)
您就可以看到
$startTime
$finishTime
都输出相同的数据。
在这里
$startTime
创建一个carbon对象,我们需要再次解析
$startTime
,因为它是一个carbon对象,任何附加到此对象的方法都会修改它当前的所有对象。

请尝试下面的代码

$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = Carbon::parse($startTime)->addHours(10); 
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);
$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = $startTime->addHours(10);
注意:再次解析$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 = Carbon::parse($startTime)->addHours(10); 
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);
$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = $startTime->addHours(10);
只要
dd($startTime,$finishTime)
您就可以看到
$startTime
$finishTime
都输出相同的数据。
在这里
$startTime
创建一个carbon对象,我们需要再次解析
$startTime
,因为它是一个carbon对象,任何附加到此对象的方法都会修改它当前的所有对象。

您在$startTime和$finishTime use(或create)中使用相同的carbon对象dirrent carbon object您在$startTime和$finishTime使用(或创建)dirrent carbon object中使用了相同的carbon object您可以为您的答案添加一些解释以便其他人可以从中学习吗?当然,我可以添加。您可以为您的答案添加一些解释以便其他人可以从中学习吗?当然,我可以补充。你能给你的答案添加一些解释以便其他人可以从中学习吗?你能给你的答案添加一些解释以便其他人可以从中学习吗?