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

Mat*_*oli 22 php time laravel-5

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

53 mins ago
2 hours ago
3 days ago
Run Code Online (Sandbox Code Playgroud)

有没有我可以使用的功能让它更容易?

为了确保你理解我,让我说updated_at我的数据库中有一个列(),它等于2015-06-22 20:00:03当前时间20:00:28.然后我想看看:

25 mins ago
Run Code Online (Sandbox Code Playgroud)

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

Bur*_*rak 61

默认情况下,Eloquent将列created_atupdated_at列转换为Carbon实例.因此,如果您使用Eloquent获取数据,则可以执行以下操作.

$object->updated_at->diffForHumans();
Run Code Online (Sandbox Code Playgroud)

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

// Carbon instance fields
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
Run Code Online (Sandbox Code Playgroud)


小智 8

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

 {{ \Carbon\Carbon::parse($on_revision->assignment->deadline)->diffForhumans() }}
Run Code Online (Sandbox Code Playgroud)

请注意我如何将字符串包装在 carbon::parse() 中