首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP setlocale没有任何影响

PHP setlocale没有任何影响
EN

Stack Overflow用户
提问于 2012-06-06 07:28:11
回答 13查看 106.6K关注 0票数 80

setlocale()函数没有设置所需的语言(德语)。

目标是输出月份名称。

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

代码语言:javascript
复制
<?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服务器上运行。

PHP版本5.6

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2012-06-06 07:52:18

如果没有对服务器的访问权限,此解决方案可能会有所帮助。

如果您有shell访问权限,那么 本杰明·塞勒的回答 是最好的!

由于我没有任何其他的可能性(shell),所以我已经通过使用IntlDateFormatter类找到了一个只使用PHP的解决方案。

代码语言:javascript
复制
<?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;
票数 14
EN

Stack Overflow用户

发布于 2012-06-06 07:34:52

您运行脚本时,很可能没有在服务器上安装德国语言环境吗?您有访问服务器的shell访问权吗?那就试试

代码语言:javascript
复制
locale -a

查看安装了哪些区域设置。也请看这里,依赖setlocale和正在安装的locale是否可行?

票数 109
EN

Stack Overflow用户

发布于 2016-11-24 00:10:03

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

==关注==

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

使用strftime()代替!

票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10909911

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档