PHP setlocale 没有效果

2022-08-30 08:22:09

该函数不设置所需的语言(德语)。setlocale()


目标是输出月份名称。

这是我到目前为止试用的测试代码:

<?php

date_default_timezone_set('Europe/Berlin');
setlocale(LC_ALL, 'de_DE.utf8');
// Or
setlocale(LC_ALL, 'de_DE@euro');
// Or
setlocale(LC_ALL, 'de_DE');
// Or
setlocale(LC_ALL, 'de');
// Or
setlocale(LC_ALL, 'ge');


echo strftime('%B');

输出:

六月

而不是

朱尼

有什么建议吗?

  • 我没有 ssh 或其他 shell 访问权限。
  • 该脚本在 Linux 服务器上运行。

版本 5.6


答案 1

德语语言环境很可能没有安装在运行脚本的服务器上 - 您是否具有对服务器的shell访问权限?然后尝试

locale -a

以查看安装了哪些区域设置。另请查看此处 是否可行,依赖于 setlocale 并依赖于正在安装的本地环境?


答案 2

对于那些来这里寻找没有本地化月份和工作日名称的人:date()

== 注意 ==

date() 只能返回英文的月份/日名称,无法为您提供其他语言的翻译。

请改用!strftime()


推荐