PHP中的setlocale()函數對中文無效嗎?
怪我咯
怪我咯 2017-05-24 11:33:31
0
3
770

環境:
CentOS 7.3.1611
PHP 7.1.3

程式碼:

echo setlocale(LC_ALL, array('zh_CN.UTF-8', 'zh_CN.utf8', 'zh_CN')), PHP_EOL;
$date = new DateTime();
echo $date->format('Y-F-d l'), PHP_EOL;

輸出:

zh_CN.UTF-8
2017-May-22 Monday

另外的測試,在Shell中:

# export LC_ALL=zh_CN.UTF_8
# date
2017年 05月 22日 星期一 19:02:15 CST
# export LC_ALL=en_US.UTF_8
# date
Mon May 22 19:02:34 CST 2017

疑問:
在Bash中是可以實現日期輸出本地化的。
可為什麼在PHP中,使用setlocale()函數無效呢。

敬請達人指教。

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(3)
大家讲道理

以上兩個答案都沒說到點上。
setlocale setlocale
strftimestrftime - 根據區域設定格式化本地時間/日期

這兩個函數要配合使用,你才能看到效果。

不過,不過,即使這樣,跟你直接呼叫系統 bash 的表現還是有差異,不一定符合你預期。

过去多啦不再A梦

bash中的date指令呼叫的是linux中的一個date應用程式來實現的日期函數的顯示及輸出的

php是自己實現的日期物件及函數

兩者功能不一樣是十分可以理解的啊!

漂亮男人

這是兩種語言,方法機制不一樣,如果你在php里面想得到中文这种格式,完全可以在php中通过exec调用shell的方法:

$cmd = "export LC_ALL=zh_CN.UTF_8 && date";
$date = exec($cmd);
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!