在 php 中更改日期的语言
我有这个MySQL查询,它返回两个日期(两个日期的格式都格式化为a-m-Y)。现在我想把这个日期翻译成我自己的语言(丹麦语)。我该怎么做。我已经尝试了setlocale()和strftime()函数,但它不起作用。我知道这是一个非常基本的问题,但我真的需要帮助:)多谢!
我有这个MySQL查询,它返回两个日期(两个日期的格式都格式化为a-m-Y)。现在我想把这个日期翻译成我自己的语言(丹麦语)。我该怎么做。我已经尝试了setlocale()和strftime()函数,但它不起作用。我知道这是一个非常基本的问题,但我真的需要帮助:)多谢!
使用和一起使用:setlocale
strftime
setlocale(LC_TIME, array('da_DA.UTF-8','da_DA@euro','da_DA','danish'));
echo strftime("%A"); // outputs 'tirsdag'
适用于我在Windows上的php安装。
strftime(): 警告!此函数自 PHP 8.1.0 起已弃用。强烈建议不要依赖此功能。
我发现这不可靠,因为它是按进程设置的,而不是按线程设置的(手册中提到了这一点)。这意味着其他正在运行的脚本可以随时更改区域设置。一个解决方案是使用php扩展中的IntlDateFormatter。setlocale
intl
Install if necesarry (ubuntu):intl
sudo apt-get install php5-intl
安装您要使用的区域设置(我以意大利语为例):sudo locale-gen it_IT
生成本地格式的日期:
$fmt = new \IntlDateFormatter('it_IT', NULL, NULL);
$fmt->setPattern('d MMMM yyyy HH:mm');
// See: http://userguide.icu-project.org/formatparse/datetime for pattern syntax
echo $fmt->format(new \DateTime());
// Output: 6 gennaio 2016 12:10