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');输出:
六月
而不是
朱尼
有什么建议吗?
PHP版本5.6
发布于 2012-06-06 07:52:18
如果没有对服务器的访问权限,此解决方案可能会有所帮助。
如果您有shell访问权限,那么 本杰明·塞勒的回答 是最好的!
由于我没有任何其他的可能性(shell),所以我已经通过使用IntlDateFormatter类找到了一个只使用PHP的解决方案。
<?php
// Example vars
$month = '6';
$year = '2014';
$fmt = new IntlDateFormatter('de_DE',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'Europe/Berlin',
IntlDateFormatter::GREGORIAN);
$lastMonth = mktime(0, 0, 0, $month -1, 1, $year);
$showLastMonth = $fmt->format($lastMonth);
echo $showLastMonth;发布于 2012-06-06 07:34:52
您运行脚本时,很可能没有在服务器上安装德国语言环境吗?您有访问服务器的shell访问权吗?那就试试
locale -a查看安装了哪些区域设置。也请看这里,依赖setlocale和正在安装的locale是否可行?
发布于 2016-11-24 00:10:03
对于那些来这里寻找date()的人来说,不能本地化月份和工作日的名称:
==关注==
date()只能返回英文的月/日名称,不能为其他语言提供翻译。
使用strftime()代替!
https://stackoverflow.com/questions/10909911
复制相似问题