zoukankan      html  css  js  c++  java
  • Laravel 项目使用 Carbon 人性化显示文章发表时间

    比如说有这样一个需求:一篇文章的发表时间:

    **距离现在时间**      **显示格式**
    
    < 1小时                 xx分钟前
    
    1小时-24小时            xx小时前 
    
    1天-10天                xx天前
    
    >10天                   直接显示日期

    针对这样的需求,可以利用 Carbon 的尝试下面的解决方案:

    首先:

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

     public function boot()
    
        {
    
            CarbonCarbon::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 CarbonCarbon;

    最后:

    直接显示你的日期就好:

    $article = AppArticle::find(7);
    
    
    {{ $article->created_at }}; // 视图中直接显示
  • 相关阅读:
    2020-3-23学习地图
    HashMap<K,V>类
    2020-3-21学习地图
    模板模式
    2020-3-20学习地图
    字符串常量池String Constant Pool
    2020-3-19学习地图
    2020-3-18学习地图
    MySQL游标
    2020-3-16学习地图
  • 原文地址:https://www.cnblogs.com/lamp01/p/8443132.html
Copyright © 2011-2022 走看看