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

I looked at diffForHumans, but that does give the format I'd like and returns things like after, ago, etc; which is useful, but not for what I'm trying to do.

持续时间不会跨越几天,最多只有几个小时.

$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

如果有人有更好的方法,我会感兴趣的.否则就行了.

Laravel相关问答推荐

如何将错误从laravel恢复到inertiajs/vue 3应用程序?

子目录中具有Vue实例的Laravel不起作用

Vue 组件中的图像不适用于 Vite + Laravel

如何从laravel中的另一个表中获取用户名

如何在 Laravel Eloquent Collection 数组之前添加一个键值对?

在 laravel 5 中的表单请求验证后传递旧输入

使用 Eloquent (Laravel) 在 Group By 之前排序

静态密码在默认的 Laravel 用户工厂中是如何工作的?

Laravel 5.5 在迁移文件中设置整数字段的大小

file_put_content ...无法打开流:Laravel 5 中的权限被拒绝

删除表后如何重新迁移laravel迁移

Laravel 判断约束违规

如何重定向到laravel上的公共文件夹

Laravel/PHPUnit:断言 json 元素存在而不定义值

你如何在 Laravel 中的每个响应上强制一个 JSON 响应?

今天之前的 Laravel 规则......怎么办

登录后 DevTools 无法解析 SourceMap 错误将重定向到该 js 文件

Laravel 5 默认注册后如何发送邮件?

Laravel Nova 显示用户友好的资源名称

在 Laravel 中软删除父记录时如何软删除相关记录?