• 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 }}; // 视图中直接显示
  • 相关阅读:
    简单数学问题
    MFC 注册表编程
    Windows多线程端口扫描
    MFC Socket双向通信
    凯撒加密
    单片机滤波
    大数素性检验
    大数加法乘法
    Unsafe Code
    委托
  • 原文地址:https://www.cnblogs.com/lamp01/p/8443132.html
Copyright © 2020-2023  润新知