【问题标题】:How can I make PHP:s setlocale() to work correctly on localhost?如何使 PHP:s setlocale() 在本地主机上正常工作?
【发布时间】:2022-01-13 09:26:24
【问题描述】:

我正在尝试用不同的语言输出当前日期。我使用以下代码以瑞典自然语言回显日期 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

我在本地主机上运行 Apache。我想我需要在本地配置 Apache 或 PHP 才能完成这项工作。但我不确定如何或在哪里。有什么建议吗?

【问题讨论】:

  • 这取决于底层操作系统,因此请确保您在使用的操作系统上安装了该语言环境。
  • @M.Eriksson 实际上它是瑞典版的 Windows 11。所以我猜这个操作系统有预期的语言

标签: php apache


【解决方案1】:

我现在找到了答案。微软似乎为此使用了其他语言环境字符串。对于瑞典语,它应该是“sve_SWE”而不是“sv_SE”。

阅读更多:MS Language stringsMS Country/Region strings

因此,对于 Windows 版本的 localhost,它应该是:

setlocale(LC_ALL, 'sve_SWE.UTF-8');

【讨论】:

    猜你喜欢
    • 2021-08-27
    • 2013-03-21
    • 1970-01-01
    • 2018-03-07
    • 2012-01-29
    • 2015-10-25
    • 2015-08-28
    • 2020-07-17
    • 1970-01-01
    相关资源
    最近更新 更多