如何在 PHP 中获取本地化格式的日期(如“Friday”、“August”)

落静姑娘_2871

落静姑娘_2871

2026-10-24

465人浏览

原创

如何在 PHP 中获取本地化格式的日期(如“Friday”、“August”)

PHP 8.1+ 中 strftime() 已被弃用,推荐使用 IntlDateFormatter 类实现多语言环境下的日期本地化输出,支持按区域设置(如 de_DE)准确显示星期、月份等文本。

php 8.1+ 中 `strftime()` 已被弃用,推荐使用 `intldateformatter` 类实现多语言环境下的日期本地化输出,支持按区域设置(如 `de_de`)准确显示星期、月份等文本。

在现代 PHP 开发中,获取本地化格式的日期(例如德语中的 “Samstag” 和 “August”)不能再依赖已废弃的 setlocale() + strftime() 组合。date() 和 DateTime::format() 同样不响应系统 locale 设置,因此必须转向国际化(i18n)原生支持方案 —— IntlDateFormatter。

该类基于 ICU 库,提供完整的区域感知日期/时间格式化能力,无需手动维护翻译映射表,且完全兼容 PHP 8.1+ 及后续版本。

基础用法:获取完整本地化日期时间

$fmt = new IntlDateFormatter(
    'de_DE',                           // 区域标识符(locale)
    IntlDateFormatter::FULL,            // 日期风格:FULL / LONG / MEDIUM / SHORT
    IntlDateFormatter::FULL             // 时间风格
);

echo $fmt->format(time());
// 输出示例:Samstag, 27. August 2022 00:58:15 GMT

如需仅获取星期或月份名称,可调整格式风格并配合 setPattern() 精确控制:

提取独立组件:仅星期或仅月份

// 仅星期全称(如 "Samstag")
$fmt = new IntlDateFormatter('de_DE', IntlDateFormatter::FULL, IntlDateFormatter::NONE);
$fmt->setPattern('EEEE'); // EEEE = 完整星期名
echo $fmt->format(strtotime('2022-04-27')); // → Samstag

// 仅月份全称(如 "August")
$fmt->setPattern('MMMM'); // MMMM = 完整月份名
echo $fmt->format(strtotime('2022-08-15')); // → August

常用模式符号说明:

实现基于qmt智能交易终端的A股交易数据本地化
实现基于qmt智能交易终端的A股交易数据本地化

基于QMT平台,支持自然语言指令下载并实时监控A股多周期历史行情,含智能错误处理与任务控制。

下载
  • EEEE:星期全称(e.g., Samstag)
  • MMM:月份缩写(e.g., Aug.)
  • MMMM:月份全称(e.g., August)
  • yyyy:四位年份;MM:两位数字月份;dd:两位日期
  • HH:mm:ss:24 小时制时间

⚠️ 注意事项:

  • 确保服务器已启用 intl 扩展(可通过 extension=intl 在 php.ini 中启用,并重启 Web 服务);
  • IntlDateFormatter 构造失败时会返回 false,建议添加异常或返回值检查;
  • 若需动态切换 locale(如用户多语言偏好),应为每个 locale 实例化独立的 IntlDateFormatter 对象,避免共享状态干扰;
  • 模式字符串区分大小写,且不支持 date() 中的 F、l 等格式字符,务必查阅 ICU Date/Time Patterns 文档。

综上,IntlDateFormatter 是当前 PHP 生态中获取真正本地化日期文本的唯一健壮方案。它不仅替代了废弃函数,更提供了可扩展、可测试、符合国际标准的日期格式化能力,是构建多语言 Web 应用的必备工具。

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php 本地化

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

11304

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

6561

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

2155

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

4148

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4854

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

3811

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

5497

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

4302

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

12242

4

热门下载

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

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
墨刀帮助中心
墨刀帮助中心

共0课时 | 0人学习

MyEclipse学习中心
MyEclipse学习中心

共0课时 | 0人学习

Apache Subversion 官方手册
Apache Subversion 官方手册

共0课时 | 0人学习