WAMP 上的 PHP setlocale 因 pt_BR 而失败

标签 php timezone

好的,这里有什么问题吗?

header('Content-type: text/html; charset=utf-8');

setlocale(LC_ALL, NULL);
setlocale(LC_ALL, 'pt_BR');

echo "<p>São Paulo, " . date("d \d\e F \d\e Y", time()) . "</p>";

echo "<p>Preferred locale on this system is '" . setlocale(LC_ALL, NULL) . "'</p>";

echo :

São Paulo, 24 de April de 2012
Preferred locale on this system is 'Portuguese_Brazil.1252'

也试过类似的东西:

setlocale(LC_ALL, 'Portuguese_Brazil.1252', 'bra', 'brazil', 'pt_BR', 'pt_BR.iso-8859-1', 'pt_BR.utf-8', 'portuguese', 'portuguese-brazil', 'ptb');

但是没有什么能让'aPril'变成'aBril'。

谢谢。

PS:文档是在 IDE 上格式化的 UTF.8(无 BOM)。

最佳答案

我在共享主机上遇到了同样的问题,只是制作了我自己的语言环境功能。

更新:

好吧,如果你已经安装了语言,只需使用 strftime() 而不是 date()

来自 PHP 文档:

To format dates in other languages, you should use the setlocale() and strftime() functions instead of date().

试试这个:

header('Content-type: text/html; charset=utf-8');

setlocale(LC_ALL, NULL);
//setlocale(LC_ALL, 'Portuguese_Brazil.1252'); ERROR in nowadays
setlocale(LC_ALL, 'pt_BR.utf-8'); // UTF-8 is the correct!

echo "<p>São Paulo, " . strftime("%d de %B de %Y", time()) . "</p>";

echo "<p>Preferred locale on this system is '" . setlocale(LC_ALL, NULL) . "'</p>";

关于WAMP 上的 PHP setlocale 因 pt_BR 而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10301267/

相关文章:

php - 如何使用 CSS [Img Inside] 有效地将列表的各个部分居中

php - Facades Laravel 直接调用库

php - 合并 2 个 while 循环结果

java - 如何处理国际时间?

database - 考虑到主要国家/地区跨越多个时区,GMT在全局将数据库离线进行日常维护的最少事件时间是什么?

php - PHP中使用外键的正确方法

php - mysql 中的 store_result() 和 get_result() 返回 false

php - UTC 日期时间转换

datetime - 改变时区 Elixir 的正确方法是什么

python-3.x - Python - 具有多个时区的 Pandas 日期时间列