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

WordPress公历转波斯历:月份显示拉丁化波斯语而非波斯文问题

解决方案

问题根源在于你使用的locale参数是en_US@calendar=persian,这会让日期格式化器调用英文语境下的波斯历月份名称(拉丁化拼写形式)。要显示波斯语原生的月份文字,只需将locale切换为波斯语(伊朗)的本地化标识即可。

修改后的代码如下:

$now = new DateTime();
$formatterMonth = new IntlDateFormatter(
  "fa_IR@calendar=persian", // 替换为波斯语本地化标识
  IntlDateFormatter::FULL,
  IntlDateFormatter::FULL,
  'Asia/Tehran',
  IntlDateFormatter::TRADITIONAL,
  "dd MMMM",
);
echo $formatterMonth->format($now); // 输出示例:۲۹ فروردین

额外说明

  • 若服务器未安装波斯语locale包,可能会导致不生效。可通过执行locale -a命令检查系统中是否存在fa_IR或fa_IR.utf8,若缺失需安装对应locale包(比如Debian/Ubuntu系统可执行sudo locale-gen fa_IR.utf8)。
  • 若fa_IR@calendar=persian仍有问题,可尝试使用fa_IR.utf8@calendar=persian,显式指定UTF-8字符编码,避免乱码问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 07:52:05