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

Php Laravel/Carbon将两个时间戳加在一起?,php,laravel,laravel-5,eloquent,php-carbon,Php,Laravel,Laravel 5,Eloquent,Php Carbon,我正在研究一个系统,在这个系统中,人们可以开始和停止某件事情,并计算它们所花费的时间。这是通过以下方式实现的: 当按下“开始”按钮时,该行的日期被添加到数据库表中 当按下“停止”按钮时,添加一个日期(结束日期),然后我通过以下方式计算差异: $startTime = \Carbon\Carbon::parse($task->date_start); $finishTime = \Carbon\Carbon::parse($task->date_complete); $totalD

我正在研究一个系统,在这个系统中,人们可以开始和停止某件事情,并计算它们所花费的时间。这是通过以下方式实现的:

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

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

    $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;

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

使用整数类型后,在添加数字时不应出现任何问题:

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