需求:一篇文章或者评论的发表时间:**距离现在时间** **显示格式**
1小时-24小时 xx小时前
1天-10天 xx天前
>10天 直接显示日期
首先:
在app/Providers/AppServiceProvider.php中添\Carbon\Carbon::setLocale('zh');这一行到boot()方法当中,(为了中文化显示)public function boot()
{
\Carbon\Carbon::setLocale('zh');
}
第二:
在Article的Model中添加下面的方法:(仅仅添加这么一个方法就可以了,不需要在控制器里使用)public function getCreatedAtAttribute($date)
{ if (Carbon::now() addDays(10)) {
return Carbon::parse($date);
} return Carbon::parse($date)->diffForHumans();
}
这里注意到使用到了 Laravel 的getXXXAttribute()的特性,如果你是其他的字段,比如published_at,方法应该写成getPublishedAtAttribute($date),别忘了在Article头部use Carbon\Carbon;。
最后:
直接显示你的日期就好:$article = \App\Article::find(7);
{{ $article->created_at }}; // 视图中直接显示