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

**距离现在时间**      **显示格式**

< 1小时                 xx分钟前

1小时-24小时            xx小时前 

1天-10天                xx天前

>10天                   直接显示日期

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

首先:

在你的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);

{{ $article->created_at }}; // 视图中直接显示

Laravel 项目使用 Carbon 人性化显示文章发表时间的更多相关文章

  1. Laravel使用Carbon人性化显示时间

    1.下载Carbon composer require nesbot/carbon Laravel自带Carbon包,可以直接使用 use Carbon\Carbon; 2.如果数据库存的是日期格式, ...

  2. Sql批量修改帝国cms文章发布时间(需unix时间,否则会变为1970-01-01)

    在迁移网站时,有时我们需要将帝国cms文章发表时间批量修改为当前时间,在帝国cms后台→系统设置→备份与恢复数据→执行sql语句: update phome_ecms_news set newstim ...

  3. Laravel大型项目系列教程(四)显示文章列表和用户修改文章

    小编心语:不知不觉已经第四部分了,非常感谢很多人给小编提的意见,改了很多bug,希望以后能继续帮小编找找茬~小编也不希望误导大家~这一节,主要讲的 是如何显示文章列表和让用户修改文章,小编预告一下(一 ...

  4. Laravel 项目运行 phpunit 测试结果只显示点号

    在laravel 项目的根目录下,运行 phpunit 只显示 点号的情况 我尝试将 tests/Unit 和 tests/Feature 目录将 ExampleTest.php 文件删除,然后再运行 ...

  5. WordPress主题开发实例:显示最新发表文章

    实现效果 制作网站的时候,想在页面左栏显示最新发表的文章,如: 一.先开启侧边栏工具,在functions.php加上 $args = array( 'name' => __( '分类侧边栏') ...

  6. 转:Laravel 项目开发规范

    文件介绍很好 值得细细看看 https://www.jianshu.com/p/e464a35e5ed2 https://learnku.com/docs/laravel-specification/ ...

  7. 【简书】在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目

    在阿里云自带的CentOS + LAMP环境下部署一个Laravel项目 作者 DonnieZero 关注 2017.07.29 22:02* 字数 2218 阅读 5556评论 3喜欢 1赞赏 1 ...

  8. Laravel项目修改时区

    Laravel项目修改时区 最近做了一个支付宝支付的应用,现在还在开发过程中,今天早上起床之后先调试了一下项目,模拟支付了一笔(¥9999.00) 2333支付宝的沙箱环境啦,屌丝程序猿哪来这么多钱- ...

  9. 安装lnmp1.5,搬迁Laravel项目到服务器笔记

    近期有个Laravel开发项目,需要搬到CentOS服务器做测试. 先说下项目的配置: Laravel版本5.5 --确定了php7.0以上: CentOS 7.0或以上. lnmp 1.5版 以下是 ...

随机推荐

  1. laravel5.5入口文件分析

    入口文件 public/index.php 1.加载composer的自动加载器 require __DIR__.'/../vendor/autoload.php'; 自动加载,不用再各种requir ...

  2. Pascal小游戏 不要消灭星星

    不要消灭星星 Pascal小游戏 Chaobs改编自pascal吧 控制台小游戏嘛,就当是练习一下结构化的写法. program wxtw; uses crt; type      zbdy=reco ...

  3. Linux查看端口被占用情形

    查看某端口的占用情况: lsof -i:<端口号> 例如:lsof -i:8080 netstat -apn|grep <端口号> 例如: netstat -apn | gre ...

  4. PEAR DB 初学笔记

    1.数据查询 i. DB_common::getAll() DB_FETCHMODE_ORDERED . DB_FETCHMODE_ASSOC . DB_FETCHMODE_OBJECT ii. DB ...

  5. Makefile编写记录

    近期学习 Linux 需要使用 Makefile,网上搜罗了很多这方面的资料,所里在这里做一个整理. 1.静态模式 看一个例子: objects = foo.o bar.o all: $(object ...

  6. 转换 nvarchar 值 '2013071200000578' 时溢出了整数列

    sqlserver 把一个nvarchar 与 int  类型 拼接 会自动转换 INT 做运算,nvarchar 类型有16位 转换失败 只能 str(int) 转换成 字符型 进行拼接 (sqls ...

  7. Python字符串相关

    #字符串的相关操作 #基本操作 #+ 字符串连接操作 str1 = '来是come走是go' str2 = '点头yes摇头no' result = str1 + str2 print(result) ...

  8. poj 2240 Arbitrage (最短路径)

    Arbitrage Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13800   Accepted: 5815 Descri ...

  9. 洛谷 P3157 [CQOI2011]动态逆序对 | CDQ分治

    题目:https://www.luogu.org/problemnew/show/3157 题解: 1.对于静态的逆序对可以用树状数组做 2.我们为了方便可以把删除当成增加,可以化动为静 3.找到三维 ...

  10. js加解密的算法

    //字符串和数字互转 var str="a" var r = str.charCodeAt(0); //97 10进制 console.log(r); var t=String.f ...