简单介绍

原本时间2021-10-14 22:55:14,格式化为 2秒前这种格式

我们可以使用composer中的nesbot/carbon库来进行处理

类似JavaScript中的Moment.js

安装
composer require nesbot/carbon
本地化

在app/AppService.php 中 添加

Carbon::setLocale('zh')
使用

文档:https://packagist.org/packages/nesbot/carbon

$res = Carbon::parse('2019-07-23 14:51')->diffForHumans();//2年前

也可以在模型中对特定需求的字段进行转换

    public function getLastUpdateTimeAttr()
    {
        return Carbon::parse($this->articles()->max('update_time', false))->diffForHumans();
    }
自己动手转换思路
    //把时间戳转换为几分钟或几小时前或几天前
    function wordTime($time) {
        $time = (int) substr($time, 0, 10);
        $int = time() - $time;
        $str = '';
        if ($int <= 30){
            $str = sprintf('刚刚', $int);
        }elseif ($int < 60){
            $str = sprintf('%d秒前', $int);
        }elseif ($int < 3600){
            $str = sprintf('%d分钟前', floor($int / 60));
        }elseif ($int < 86400){
            $str = sprintf('%d小时前', floor($int / 3600));
        }elseif ($int < 2592000){
            $str = sprintf('%d天前', floor($int / 86400));
        }else{
            $str = date('Y-m-d H:i:s', $time);
        }
        return $str;
    }