如何使用Laravel 5以人类可读的格式获得时间差?

2022-08-30 12:33:35

我想显示当前日期和时间与列中存储的日期和时间之间的差异。但是,我希望它是人类友好的,例如:updated_at

53 mins ago
2 hours ago
3 days ago

有没有一个功能,我可以用来使它更容易?

为了确保您理解我,假设我的数据库中有一列(),该列等于当前时间。然后我想看看:updated_at2015-06-22 20:00:0320:00:28

25 mins ago

当它高于59分钟时,我只想显示小时,当它高于24小时时,我想看看多少天前。


答案 1

默认情况下,Eloquent 将和列转换为 Carbon 的实例。因此,如果您使用Eloquent获取数据,则可以按如下方式进行。created_atupdated_at

$object->updated_at->diffForHumans();

如果要自定义将自动更改的字段,则可以在模型中根据需要自定义它们。

// Carbon instance fields
protected $dates = ['created_at', 'updated_at', 'deleted_at'];

答案 2

如果日期是字符串格式,请使用laravel Carbon;例如,

 {{ \Carbon\Carbon::parse($on_revision->assignment->deadline)->diffForhumans() }}

注意我是如何将字符串包裹在carbon::p arse()中


推荐