我试图弄清楚如何获取存储在数据库中的两个日期时间字符串,并将其转换为hh:mm:ss的时间格式差异。

我看了看diffForHumans,但这确实给出了我想要的格式,并返回了afterago等内容;这很有用,但不适用于我要尝试做的事情。

持续时间永远不会超过几天,最多只能持续几个小时。

$startTime = Carbon::parse($this->start_time);
$finishTime = Carbon::parse($this->finish_time);

$totalDuration = $finishTime->diffForHumans($startTime);
dd($totalDuration);

// Have: "21 seconds after"
// Want: 00:00:21

最佳答案

我最终使用Carbon捕获了总秒数差:

$totalDuration = $finishTime->diffInSeconds($startTime);
// 21

然后用gmdate:
gmdate('H:i:s', $totalDuration);
// 00:00:21

如果有人有更好的方法,我会很感兴趣。否则,这有效。

10-04 22:12