You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel 9中用diffForHumans生成“今天”“昨天”等日期文本?

自定义Laravel时间显示为“今天/昨天/X天前”格式

你可以通过Carbon的日期判断方法实现需求,以下是两种可行方案:

方案一:直接在Blade中判断

利用Carbon提供的isToday()、isYesterday()和diffInDays()方法,直接在视图里做条件判断:

@if($data->created_at->isToday())
    今天
@elseif($data->created_at->isYesterday())
    昨天
@else
    {{ $data->created_at->diffInDays(now()) }}天前
@endif

如果想更简洁,也可以用三元表达式:

{{ $data->created_at->isToday() ? '今天' : ($data->created_at->isYesterday() ? '昨天' : $data->created_at->diffInDays(now()).'天前') }}

方案二:封装成模型访问器(推荐复用场景)

如果多个页面需要这种格式,可在对应模型里定义访问器,避免重复代码:

// 在你的数据模型(如Post/Article等)中添加
public function getCreatedAtHumanAttribute()
{
    if ($this->created_at->isToday()) {
        return '今天';
    } elseif ($this->created_at->isYesterday()) {
        return '昨天';
    } else {
        return $this->created_at->diffInDays(now()) . '天前';
    }
}

之后在Blade视图里直接调用这个访问器即可:

{{ $data->created_at_human }}

这样处理后,今天创建的内容统一显示“今天”,昨天的显示“昨天”,更早的则显示具体天数前,完全匹配你的需求。

内容的提问来源于stack exchange,提问作者Fawwaz Saputra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 16:32:22