使用 Carbon 返回人类可读的日期时间差

2022-08-30 08:59:14

我正在使用Laravel 4来创建我的项目。

我目前正在构建评论部分,我想显示帖子创建的时间,有点像Facebook的“10分钟前”“2周前”等。

我做了一些研究,发现一个名为Carbon的包装可以做到这一点。

在阅读了Laravel的文档后,它说:

默认情况下,Eloquent 会将 、 和 列转换为 的实例,这提供了各种有用的方法,并扩展了本机 PHP 类。created_atupdated_atdeleted_atCarbonDateTime

但是,当我返回我创建的日期列时,它不会像在Facebook上那样显示它。

我使用的代码是:

return array('time');

有没有人使用这个Carbon包装,可以让我做我需要的事情,我很困惑。


答案 1

默认情况下,Eloquent 会将created_at、updated_at列和deleted_at列转换为 Carbon 实例。所以,你的代码应该像这样:

$comment->created_at->diffForHumans();

这很酷。它将生成类似 或 的字符串。Plurar或单数,秒,分钟,小时,天,周或年,它会自动运行。我已经在Laravel版本4.1.24上测试了它。2 minutes ago1 day ago


答案 2

如果您阅读Carbon文档以获取所需的内容,则可以调用该方法。diffForHumans()

<?php echo \Carbon\Carbon::createFromTimeStamp(strtotime($comment->created_at))->diffForHumans() ?>

推荐