Laravel中使用Carbon

2017/04/14 laravel

大概的样式:

**距离现在时间**      **显示格式**
< 1小时                xx分钟前
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() < Carbon::parse($date)->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);

; // 视图中直接显示

Search

    Table of Contents