首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >diffInHours函数返回零碳

diffInHours函数返回零碳
EN

Stack Overflow用户
提问于 2018-09-19 07:03:48
回答 2查看 614关注 0票数 0

我用的是拉拉和碳库。我想在几个小时内有不同的时间。但是diffInHours返回零。

代码语言:javascript
复制
$_startTime = $startTime = \Carbon\Carbon::parse('2018-09-18 21:12:35');
            $finishTime = $_startTime->addHours(10);
            $totalDuration = $startTime->diffInHours($finishTime);

dd($totalDuration);// 0
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-19 07:18:57

请试试下面的代码

代码语言:javascript
复制
$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = Carbon::parse($startTime)->addHours(10); 
$totalDuration = $startTime->diffInHours($finishTime);
dd($totalDuration);

注释:再次解析$startime,因为它用addHours(10).修改了启动时间

解释:

代码语言:javascript
复制
$startTime  = Carbon::parse('2018-09-18 21:12:35');

在这里,碳物体被创造出来。

代码语言:javascript
复制
$finishTime = Carbon::parse($startTime)->addHours(10);

如果我用下面的代码修改我的$finishTime

代码语言:javascript
复制
$startTime  = Carbon::parse('2018-09-18 21:12:35');
$finishTime = $startTime->addHours(10);

只有dd($startTime,$finishTime),您可以看到$startTime$finishTime都输出相同的数据。在这里,$startTime创建一个碳对象,我们需要再次解析$startTime,因为它是一个碳对象--附加到该对象的任何方法都将修改它的所有当前对象。

票数 2
EN

Stack Overflow用户

发布于 2018-09-19 07:18:05

在您的代码中,当您执行$ startTime ->addHours( 10 )并将其分配给finishTime时,startTime也会添加10个小时,然后分配给finishTime。所以在这个过程中,两者是一样的,当你把它们分开的时候,结果是零。因此,您需要分别维护两个变量,如下所示,希望这对您有所帮助。

代码语言:javascript
复制
$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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52400008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档