讲师中心 微信公众号
AI工具推荐 视频效率加速

Symfony4本地化日期时间格式化配置教程

落强小哥_5849

落强小哥_5849

发布时间:2026-08-21 16:20:01

|

680人浏览过

|

来源于php中文网

原创

Symfony 4需通过intl扩展+symfony/intl+symfony/translation实现本地化日期时间格式化,关键在于启用intl、验证ICU数据、正确使用IntlDateFormatter或Twig的localizeddate过滤器,并配合Translation组件处理相对时间。

symfony4本地化日期时间格式化配置教程

Symfony 4 本身不内置“本地化日期时间格式化”的全自动配置,但通过 intl 扩展 + symfony/intl + symfony/translation 组合,能实现符合 Unicode CLDR 标准的、真正按 locale 渲染日期时间的效果。关键不在“配个参数”,而在选对组件、设对区域码、用对格式器。

确保 intl 扩展已启用并支持目标语言

这是所有本地化格式化的底层依赖。运行 php -m | grep intl 或查看 phpinfo() 中 intl 模块状态。注意:仅安装扩展不够,还要确认 ICU 数据版本支持你需要的语言(比如 zh-Hansar-SA)。若 new \IntlDateFormatter('ar', ...) 报错或返回空,大概率是 ICU 数据过旧或缺失对应 locale。

  • Ubuntu/Debian:安装 php-intl 包后,检查 /usr/share/icu/ 下是否有对应版本的 icudt*.dat
  • macOS(Homebrew):用 brew install icu4c && pecl install intl,并在 php.ini 中指定 intl.icu_data = /usr/local/opt/icu4c/share/icu/
  • 验证方式:var_dump(\Locale::acceptFromHttp('zh-Hans-CN')); 应返回 "zh_Hans_CN"var_dump(\IntlDateFormatter::getAvailableLocales()); 应包含目标 locale

在 Twig 中使用 localizeddate 过滤器(最常用场景)

Symfony 默认集成了 Twig 的 localizeddatelocalizedtime 过滤器,它们基于 IntlDateFormatter,自动适配当前请求 locale(由 RequestStackTranslator 的 locale 决定)。

Symfony Linux版
Symfony Linux版

Symfony Linux版整理 Symfony CLI 5.17.1 官方下载入口和 Symfony 框架安装配置说明。

下载
  • 模板中直接写:{{ post.createdAt|localizeddate('medium', 'short', 'zh-Hans') }} → 输出“2026年8月17日” “下午2:44”
  • 不传第三个参数时,默认使用 translator.locale 配置值(通常来自 framework.default_locale 或路由前缀)
  • 支持的风格:'full''long''medium''short'(分别控制年月日和时分秒的详略程度)
  • 注意:该过滤器不读取 messages+intl-icu.*.xlf 文件,它走的是 ICU 原生规则,所以无需手动翻译“August”或“Monday”

在 PHP 代码中手动使用 IntlDateFormatter

适合需要完全控制格式、或脱离 Twig 的场景(如 API 响应、导出逻辑)。

  • 推荐方式:注入 IntlDateFormatter 实例或使用工厂类,避免硬编码 locale 字符串
  • 基础用法:$formatter = new \IntlDateFormatter('zh-Hans', \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT); $formatted = $formatter->format($dateTime);
  • 自定义模式(需谨慎):new \IntlDateFormatter('ja', null, null, null, null, 'yyyy年MM月dd日 HH:mm') —— 注意 ICU 模式语法与 PHP date() 不同(例如 HH 是24小时制,h 是12小时制,EEEE 是完整星期名)
  • 时区要显式设置:$formatter->setTimeZone(new \DateTimeZone('Asia/Shanghai')),否则默认用系统时区

配合 Translation 组件做动态日期文案(进阶)

当需要把“今天”、“昨天”、“3天前”这类相对时间翻译成不同语言时,IntlDateFormatter 不适用,得靠 symfony/intl 提供的 TimeDiffTransformer 或社区 bundle(如 knplabs/knp-time-bundle)。

  • knp_time 自动根据当前 locale 渲染相对时间,例如:{{ post.createdAt|ago({'locale': 'fr'}) }}il y a 2 heures
  • 若坚持原生方案,可借助 symfony/intlResourceBundle 加载 CLDR 的 relativetime 数据,但需自行封装逻辑
  • 注意:这种文案属于“翻译内容”,不是“格式化”,应放在 messages+intl-icu.*.xlf 中管理,而非依赖 ICU 规则

热门AI工具

更多
Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
PHP Symfony框架
PHP Symfony框架

本专题专注于PHP主流框架Symfony的学习与应用,系统讲解路由与控制器、依赖注入、ORM数据操作、模板引擎、表单与验证、安全认证及API开发等核心内容。通过企业管理系统、内容管理平台与电商后台等实战案例,帮助学员全面掌握Symfony在企业级应用开发中的实践技能。

4377

2025.09.11

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1569

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

1191

2024.06.27

Vibeknow在线使用入口合集
Vibeknow在线使用入口合集

本专题汇总了Vibeknow在线创作视频的官方入口及网页版使用教程,涵盖PPT、PDF、Word等文档一键转讲解视频的核心操作,并整理了免费版水印规则与手机端浏览器访问指南,助你快速将知识内容视频化。

20

2026.09.21

NumPy随机数文件读写与dtype数据类型
NumPy随机数文件读写与dtype数据类型

本专题整理 NumPy 随机数、文件读写与 dtype 数据类型相关教程,覆盖 Generator/random、随机数种子、正态分布采样、npy/npz/CSV/TXT 保存读取、loadtxt/savetxt、memmap、大文件处理、astype 类型转换、结构化 dtype、整数溢出和精度丢失等场景。

0

2026.09.21

NumPy矩阵运算与线性代数计算
NumPy矩阵运算与线性代数计算

本专题整理 NumPy 矩阵运算与线性代数计算相关教程,覆盖矩阵乘法、dot 与 @ 运算符、逆矩阵、行列式、特征值与特征向量、SVD、线性方程组、欧氏距离、矩阵分解和大规模矩阵性能优化等内容,帮助读者掌握 np.linalg 与矩阵计算实战。

0

2026.09.21

NumPy广播机制数学运算与统计分析
NumPy广播机制数学运算与统计分析

本专题整理 NumPy 广播机制、数组数学运算与统计分析相关教程,覆盖广播规则、维度对齐、矩阵与数组加减除法、向量化计算、均值方差、分位数、中位数、直方图和 unique 频次统计等场景,帮助读者掌握 ndarray 高效计算与统计处理方法。

0

2026.09.21

NumPy数组创建索引切片与数据选择
NumPy数组创建索引切片与数据选择

本专题整理 NumPy 数组创建、索引、切片与数据选择相关教程,覆盖 np.array、zeros/ones、多维数组形状、基础切片、花式索引、布尔索引、条件筛选、视图与副本等常用场景,帮助读者系统掌握 ndarray 数据构造与高效提取方法。

0

2026.09.21

Aionclaw智能助手介绍
Aionclaw智能助手介绍

本专题汇总了AionClaw(AI龙虾助手)的功能介绍与在线使用入口。AionClaw是杭州趣猿人工智能有限公司推出的桌面级AI智能体,能直接在电脑上读写文件、运行脚本、操作浏览器,自动交付Word、PPT、Excel等成品。

40

2026.09.20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Symfony 官方文档
Symfony 官方文档

共0课时 | 0人学习

Composer手册
Composer手册

共0课时 | 0人学习

Symfony5【从0开始开发博客系统】
Symfony5【从0开始开发博客系统】

共120课时 | 15万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn