在php中更改日期的语言

Emi*_*mil 12 php date

我有这个MySQL查询,它返回两个日期(格式为amY).现在我想将这个日期翻译成我自己的语言(丹麦语).我怎样才能做到这一点.我已经尝试了setlocale()和strftime()函数,但它不起作用.我知道这是一个非常基本的问题,但我真的需要帮助:)非常感谢!

San*_*kum 11

使用setlocalestrftime在一起:

setlocale(LC_TIME, array('da_DA.UTF-8','da_DA@euro','da_DA','danish'));
echo strftime("%A"); // outputs 'tirsdag'
Run Code Online (Sandbox Code Playgroud)

适用于我在Windows上的php安装.


Mud*_*Ali 5

使用

http://php.net/manual/zh/function.strftime.php

<?php
setlocale(LC_ALL, 'da_DA');

echo strftime("%A %e %B %Y");
?>
Run Code Online (Sandbox Code Playgroud)


Sim*_*amp 5

我发现这setlocale不可靠,因为它是按进程设置的,而不是按线程设置的(手册中提到了这一点)。这意味着其他正在运行的脚本可以随时更改区域设置。的溶液使用IntlDateFormatterintlphp扩展。

  • intl必要时安装(ubuntu):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
Run Code Online (Sandbox Code Playgroud)


Pas*_*TIN 2

我认为这个date()功能对你来说还不够完善。

相反,我建议您看一下1(引用)IntlDateFormatter

日期格式化程序是一个具体类,它支持使用模式字符串和/或预设模式对日期进行与区域设置相关的格式化/解析。

的手册页上有几个示例IntlDateFormatter::format(),其中该方法用于通过仅设置所需的区域设置来以两种不同的语言显示日期。


1. 与 PHP >= 5.3 捆绑