PHP strftime语言环境在刷新时更改

时间:2013-11-27 11:34:20

标签: php localization strftime

我在项目中使用strftime,我有一个奇怪的错误,设置语言环境并将其打印出来。代码如下:

<?php
date_default_timezone_set('Europe/Berlin');
setlocale(LC_ALL, "de_DE");

echo strftime("%A, den %d. %B %Y um %R", strtotime('2013-11-26 08:33:45'));

?>

输出如下:

  

Dienstag,den 26. November 2013 um 08:33

这是正确的,但是如果我刷新页面,我得到以下内容(20次中的一次)

  

星期二,2013年11月26日,08:33。

为什么语言会改变?你有什么想法吗?

更新

我使用上面的代码创建了一个文件。它工作正常。在我的项目中,我正在使用Code Igniter,我有

date_default_timezone_set('Europe/Berlin');
setlocale(LC_ALL, "de_DE");

在我的主文件夹中的index.php中。我在一个观点中回应这一点:

echo strftime("%A, den %d. %B %Y um %R", strtotime('2013-11-26 08:33:45'));

问题在于Code Igniter,是否存在缓存或某些东西,有时会将语言环境更改为英语?

1 个答案:

答案 0 :(得分:0)

PHP建议从4.3.0开始,尝试所有这些可能的语言环境

setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');

其次,

  

注意:在Windows上,setlocale(LC_ALL,'')设置区域设置名称   系统的区域/语言设置(可通过控制面板访问)。