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

PHP如何以固定区域/语言格式输出日期?

用IntlDateFormatter替代弃用的strftime实现多语言日期格式化

既然已经安装了php-intl扩展,直接用IntlDateFormatter类就能搞定,这是PHP官方推荐替代strftime的方案,跨平台兼容性也更好(不像strftime依赖系统本地locale)。

具体实现代码

假设你已经有一个DateTime类型的$myDataObj,直接用下面的代码就能生成意大利语格式的日期:

// 初始化意大利语日期格式化器
$formatter = new IntlDateFormatter(
    'it_IT',                  // 指定语言区域为意大利语
    IntlDateFormatter::NONE,  // 不需要显示时间部分
    IntlDateFormatter::NONE,
    date_default_timezone_get(), // 使用当前脚本的默认时区
    IntlDateFormatter::GREGORIAN, // 使用公历
    'd MMMM y'                // 格式模式:日(不带前导零)、完整月份名、四位年份
);

// 格式化DateTime对象
$dataItalian = $formatter->format($myDataObj);

关键说明

  • 格式模式'd MMMM y'对应你原来用的%e %B %Y:d输出不带前导零的日期(比如5而不是05),MMMM输出完整的意大利语月份名(比如Ottobre),y输出四位年份。
  • 不需要像原来那样把DateTime对象转成字符串再用strtotime处理,直接传入format方法即可,效率更高也更准确。
  • 如果需要调整时区,可以把date_default_timezone_get()换成具体的时区字符串(比如'Europe/Rome')。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 05:15:42