date()不尊重当前的语言环境,而strftime()则不然

时间:2015-02-24 14:40:15

标签: php date locale strftime

这是我的测试文件的完整内容:

<?php
setlocale(LC_ALL, 'de_DE');
echo date('F'); // => "February" (wrong)
echo strftime('%B'); // => "Februar" (correct)
?>

为什么会发生这种情况的任何想法?我已在shell中使用de_DE验证已安装locale -a语言环境。

1 个答案:

答案 0 :(得分:2)

来自the manual

  

要使用其他语言格式化日期,您应该使用setlocale()和strftime()函数而不是date()。

所以你所看到的是预期的行为。使用strftime()表示区域设置格式的日期,date()表示不需要的日期。