You need to enable JavaScript to run this app. {{ $data->updated_at }}如何转换为法语格式日期(如20 Avril 2021)
优惠活动
大模型
产品
解决方案
定价
更多

{{ $data->updated_at }}如何转换为法语格式日期(如20 Avril 2021)

针对你在Blade模板中要把$data->updated_at转成「日 法语全称月份 年」格式(比如示例的20 Avril 2021)的需求,直接用Laravel自带的Carbon时间对象能力就能搞定,完全不需要自己手动拆字符串、写法语月份映射表,具体实现如下:

核心实现逻辑

$data->updated_at在Laravel中默认就是已经实例化好的Carbon对象,自带多语言格式化能力,不需要额外做字符串类型转换。

直接在模板中输出(最快实现)

直接在原Blade变量的位置替换成带本地化调用的写法即可:

{{ ucfirst($data->updated_at->locale('fr_FR')->translatedFormat('d F Y')) }}

代码输出效果和你给的示例完全匹配:2021年4月20日就会渲染为20 Avril 2021。
这里要注意两个细节:

  • 不要用Carbon自带的原生format()方法,这个方法不会触发语言翻译,输出的永远是英文月份名
  • 为什么要包一层ucfirst():法语本地化输出的月份默认是全小写的(比如avril),加了这个函数就能把月份首字母转成大写,完全对齐示例的格式

如果是Carbon 2.0之前的旧版本,把translatedFormat换成formatLocalized即可,对应格式串改成%d %B %Y:

{{ ucfirst($data->updated_at->locale('fr_FR')->formatLocalized('%d %B %Y')) }}

项目级复用优化

如果你的项目里多个页面都需要输出法语格式的日期,别每次都重复写长串代码,直接在$data对应的模型类里加个访问器:

// 放到对应模型的类内部
public function getFrenchFormattedDateAttribute()
{
    return ucfirst($this->updated_at->locale('fr_FR')->translatedFormat('d F Y'));
}

之后在Blade模板里只要写短代码就能输出:

{{ $data->french_formatted_date }}

后续如果要调整日期格式,只需要改模型里这一处逻辑就行,不用全项目检索修改。

常见踩坑排查

  • 如果输出的月份一直是英文,先检查PHP环境有没有开启intl扩展,Carbon的多语言翻译是强依赖这个扩展的
  • 如果区域设置不生效,可以全局在服务启动的时候固定设置法语locale,不用每次调用方法的时候传fr_FR参数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 07:36:03