PHP中的setlocale()函数对中文无效吗?
怪我咯
怪我咯 2017-05-24 11:33:31
0
3
903

环境:
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学习者快速成长!