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

如何在不使用toArray或toJson的情况下获取已转换格式的日期?

无需转换整个模型获取Laravel格式化日期的方法

在Laravel中,当你通过$casts配置了日期格式,但直接取字段或转字符串得不到预期格式时,可以用以下几种简便方法:

1. 调用模型的getAttributeValue方法

这个方法会触发字段的转换逻辑,直接返回casts中配置的格式化字符串:

dd($model->getAttributeValue('deadline'));
// "17/12/2022"

2. 利用Carbon实例的format方法手动格式化

直接获取字段得到的是Carbon实例,你可以直接调用它的format方法,指定和casts一致的格式:

dd($model->deadline->format('d/m/Y'));
// "17/12/2022"

如果字段可能为null,可以用可选链式调用避免报错:

dd($model->deadline?->format('d/m/Y'));

3. 为模型添加访问器

如果需要频繁使用格式化后的日期,给模型定义访问器会更直观:

// 在你的模型类中
public function getFormattedDeadlineAttribute()
{
    return $this->deadline?->format('d/m/Y');
}

之后直接通过属性调用即可:

dd($model->formatted_deadline);
// "17/12/2022"

4. 转换单个字段而非整个模型

用only方法只转换目标字段,不用处理整个模型:

dd($model->only('deadline')['deadline']);
// "17/12/2022"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 23:30:54