繁体   English   中英

Laravel / Carbon将两个时间戳加在一起?

[英]Laravel / Carbon adding two timestamps together?

我正在开发一个系统,人们可以在该系统上启动和停止某项操作,该操作可以计算花费了他们的时间。 这是通过以下方式完成的:

  • 当按下“开始”按钮时,日期将添加到该行的数据库表中。

  • 当按下“停止”按钮时,添加了一个日期(结束日期),然后我通过以下方法计算差异:

     $startTime = \\Carbon\\Carbon::parse($task->date_start); $finishTime = \\Carbon\\Carbon::parse($task->date_complete); $totalDuration = $finishTime->diffInSeconds($startTime); 

而且“ timeSpent” $totalDuration也存储为时间戳。

要求已更改,以便用户可以停止/启动,但仍保留总时间。 我的想法是:

通过以下相同的过程, timeSpent始终被存储,因此,如果用户再次单击“开始/停止”,我可以像以前一样计算差值,然后将其添加到存储在数据库中的timeSpent中,但是我不能似乎想出如何做到这一点。 我努力了:

$totalTimeSpent = strtotime($task->time_spent) +
strtotime($totalDuration);

然后再次解析它:

$total = \Carbon\Carbon::parse($totalTimeSpent);

但这会导致错误:

无法解析位置7(0)处的时间字符串(1463184003):意外字符

有人可以建议替代方案吗?

您不应将$ totalDuration存储在类型为时间戳的字段中,因为它不是时间戳。 它只有几秒钟,应该存储在一个整数字段中。

一旦使用整数类型,添加数字就不会有任何问题:

$total = $task->time_spent + $totalDuration;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM