Laravel时间显示问题

WBOY
リリース: 2016-06-06 20:09:33
オリジナル
1400 人が閲覧しました

Laravel时间显示问题,我想让时间这样显示:

比如:一篇文章的发表时间:

<code>**距离现在时间**      **显示格式**
10天                   直接显示日期</code>
ログイン後にコピー
ログイン後にコピー

应该怎么做呢?

回复内容:

Laravel时间显示问题,我想让时间这样显示:

比如:一篇文章的发表时间:

<code>**距离现在时间**      **显示格式**
10天                   直接显示日期</code>
ログイン後にコピー
ログイン後にコピー

应该怎么做呢?

Laravel 本身有对 Carbon 的完美支持,巧妙的利用就可以达到很好的效果:

首先:

在你的app/Providers/AppServiceProvider.php中添加\Carbon\Carbon::setLocale('zh');这一行到boot()方法当中,(为了中文化显示)

<code> public function boot()
    {
        \Carbon\Carbon::setLocale('zh');
    }</code>
ログイン後にコピー

第二:

ArticleModel 中添加下面的方法:

<code>  public function getCreatedAtAttribute($date)
    {
        if (Carbon::now() addDays(10)) {
            return Carbon::parse($date);
        }

        return Carbon::parse($date)->diffForHumans();
    }
   </code>
ログイン後にコピー

这里注意到使用到了 Laravel 的 getXXXAttribute() 的特性,如果你是其他的字段,比如published_at,方法应该写成 getPublishedAtAttribute($date),别忘了在Article头部use Carbon\Carbon;

最后:

直接显示你的日期就好:

<code>$article = \App\Article::find(7);

{{ $article->created_at }}; // 视图中直接显示</code>
ログイン後にコピー

更多 Laravel 的讨论学习,请到我的小站:https://laravist.com

亲测: Laravel 5.1 和 5.2 都OK

时间问题前端处理可能会对服务器压力小点,有一个moment.js你可以试一下
moment.js

<code class="php">public function formatDate($time = 0){
    $tmp = time() - $time;
    if($tmp && $tmp  60 * 60 && $tmp  60 * 60 * 24 && $tmp </code>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!