如何使 PHP:s setlocale() 在本地主机上正常工作?
How can I make PHP:s setlocale() to work correctly on localhost?
我正在尝试用不同的语言输出当前日期。我使用以下代码以瑞典自然语言回应日期 2022-01-01:
<?php
setlocale(LC_ALL, 'sv_SE.UTF-8');
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 1, 1, 2022)) . "<br>";
?>
当此代码在我的网络服务器上 运行 时,它以瑞典语显示预期的输出:
lördag 1 januari 2022
但是在我的本地主机上测试时它显示日期是用英文写的:
Saturday 1 January 2022
我在我的本地主机上 运行ning Apache。我想我需要在本地配置 Apache 或 PHP 才能完成这项工作。但我不确定如何或在哪里。有什么建议吗?
我现在找到了答案。微软似乎为此使用了其他语言环境字符串。对于瑞典语,它应该是“sve_SWE”而不是“sv_SE”。
阅读更多:MS Language strings, and MS Country/Region strings
因此,对于 Windows 版本的本地主机,它应该是:
setlocale(LC_ALL, 'sve_SWE.UTF-8');
我正在尝试用不同的语言输出当前日期。我使用以下代码以瑞典自然语言回应日期 2022-01-01:
<?php
setlocale(LC_ALL, 'sv_SE.UTF-8');
echo strftime("%A %e %B %Y", mktime(0, 0, 0, 1, 1, 2022)) . "<br>";
?>
当此代码在我的网络服务器上 运行 时,它以瑞典语显示预期的输出:
lördag 1 januari 2022
但是在我的本地主机上测试时它显示日期是用英文写的:
Saturday 1 January 2022
我在我的本地主机上 运行ning Apache。我想我需要在本地配置 Apache 或 PHP 才能完成这项工作。但我不确定如何或在哪里。有什么建议吗?
我现在找到了答案。微软似乎为此使用了其他语言环境字符串。对于瑞典语,它应该是“sve_SWE”而不是“sv_SE”。
阅读更多:MS Language strings, and MS Country/Region strings
因此,对于 Windows 版本的本地主机,它应该是:
setlocale(LC_ALL, 'sve_SWE.UTF-8');