如何在php中将英文日期格式转换为德语日期格式

时间:2011-11-29 11:19:58

标签: php date datetime date-format

嗨我有这样的日期格式

(英文格式)

 15. July 2011

我想用德语格式转换它

15. Juli 2011

如何将日期格式从一种语言转换为其他语言格式?

我的代码是

 $date = '15. July 2011';
 $newLocale = setlocale(LC_TIME, 'de_DE');
 $date = strftime('%d. %B %Y',$date);

但这不是转换我得到July而不是Juli

2 个答案:

答案 0 :(得分:6)

您可以在调用date函数之前使用setlocale函数:

$newLocale = setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8');

编辑:来自strftime文档的报价:

  

如果系统中安装了相应的语言环境,则此示例将起作用。

答案 1 :(得分:4)

如果您安装了Internationalization扩展程序,则可以使用IntlDateFormatter类。

它非常强大,实际上以您正在定位的区域设置的正确格式显示日期和时间。

德国的一个例子可能是:

// create format
$fmt = datefmt_create("de_DE", IntlDateFormatter::FULL, IntlDateFormatter::NONE, 'Europe/Berlin', IntlDateFormatter::GREGORIAN);

// output (using current time)
echo datefmt_format($fmt , time());

哪个输出:

Dienstag,2011年11月29日