【发布时间】:2017-05-14 18:29:22
【问题描述】:
我想设置正确的语言环境以接收正确的日期和时间翻译。
我试过了:
$locale = setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
但这行不通。我已经用谷歌搜索了,我发现对我的情况没有帮助。我尝试将LC_ALL 更改为LC_TIME,但没有任何效果。
如果我在 shell 中执行locale -a,我会收到:
C C.UTF-8 POSIX de_DE.utf8
我也看了/etc/default/locale
LANG="de_DE.UTF-8"
在 php.ini 中,时区也设置为 Europe/Berlin。
那么我到底做错了什么?在我的本地机器上使用 EasyPhp 可以正常工作。
为了下个月的本地化,我使用strftime:
$nextMonth = explode(" ", strftime( '%m %B %Y', strtotime( '+1 month', $date ) ));
代替
朱尼
我总是收到
六月
我也尝试了其他语言,但没有区别。
如果重要,我会使用 php7.1。
编辑: 我已经找到了这个帖子PHP setlocale has no effect,但对我没有任何帮助。
【问题讨论】:
-
只是重申一下:您确实尝试过
setlocale(LC_ALL, "de_DE.utf8");吗?它的返回值是多少? -
另外:您是否刚刚安装了该语言环境?如果是这样:您这样做后是否重新启动了 httpd?
-
我试过了,是的。我也多次重启了nginx和php。但没有任何变化。我刚刚重新启动服务器以防万一,现在它正在工作。奇怪的行为。