在php中更改日期的语言

时间:2011-08-02 10:53:35

标签: php date

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

6 个答案:

答案 0 :(得分:10)

同时使用setlocalestrftime

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

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

答案 1 :(得分:5)

使用

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

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

echo strftime("%A %e %B %Y");
?>

答案 2 :(得分:1)

我不认为date()函数在这里已经非常适合你了。

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

  

Date Formatter是一个具体的类,它使依赖于语言环境   格式化 /使用模式字符串和/或罐头解析日期   图案。

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


1。 捆绑了PHP&gt; = 5.3

答案 3 :(得分:1)

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

  • 如果必要,请安装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

答案 4 :(得分:0)

如果您想要挪威的日期和月份格式,这肯定可以为您服务

$date = '2016-11-16 05:35:14';
setlocale(LC_TIME, array('nb_NO.UTF-8','nb_NO@norw','nb_NO','norwegian'));
echo strftime("%e %b %Y",strtotime($date));

如果您想获取其他语言区域设置ID(例如nb_NO),请访问此网站 International Components for Unicode (ICU) Data

答案 5 :(得分:-1)

如果您尝试转换datetime,请尝试以下操作:

$fecha = $dateConsulta->format('d-M-Y');  
$fecha = str_replace('Jan','Ene',$fecha);
$fecha = str_replace('Apr','Abr',$fecha);
$fecha = str_replace('Aug','Ago',$fecha);
$fecha = str_replace('Dec','Dic',$fecha);