[英]PHP strftime locale changes on refresh
我在項目中使用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'));
?>
輸出如下:
Denstag,den 26.2013年11月um 08:33
這是正確的,但是如果刷新頁面,則會得到以下信息(20之內一次)
星期二,巢穴26。2013年11月um 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,是否存在緩存或將語言環境有時更改為英語的內容?
PHP建議從4.3.0開始,嘗試所有可能的語言環境
setlocale(LC_ALL, 'de_DE@euro', 'de_DE', 'deu_deu');
其次,
注意:在Windows上,setlocale(LC_ALL,'')從系統的區域/語言設置(可通過“控制面板”訪問)中設置區域設置名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.