3

好的,这里有什么问题?

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>";

回声:

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)。

4

2 回答 2

3

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

更新:

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

来自 PHP 文档:

要格式化其他语言的日期,您应该使用 setlocale() 和 strftime() 函数而不是 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>";
于 2012-06-07T07:46:42.790 回答
-1

strftime("%d de %B de %Y", time()). 工作!!

于 2013-08-12T13:36:41.497 回答