【问题标题】:Laravel / Carbon adding two timestamps together?Laravel / Carbon将两个时间戳加在一起?
【发布时间】:2016-05-14 13:10:52
【问题描述】:

我正在开发一个系统,人们可以在该系统中启动和停止计算所花费的时间。这是由以下人员完成的:

  • 按下“开始”按钮时,会在数据库表中为该行添加一个日期。

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

    $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) 失败:意外字符

有人可以提出替代方案吗?

【问题讨论】:

    标签: php laravel laravel-5 eloquent php-carbon


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-09
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-19
      • 2020-09-18
      • 2022-08-15
      • 2015-03-09
      相关资源
      最近更新 更多