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

3

你好,我有一个日期格式如下:

(英文格式)

 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个回答

6
您可以在调用date函数之前使用setlocale函数:
$newLocale = setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8');
编辑:来自strftime文档的引用:

如果您的系统安装了相应的区域设置,则此示例将起作用。


strftime 的第二个参数应该是时间戳,而不是字符串。 - matino
如果您遇到编码问题:在我们的CentOS设置中,编码区域设置必须为de_DE.UTF8,而不是de_DE.UTF-8 - Daniel W.

5
如果您安装了国际化扩展,您可以使用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());

输出结果为:

2011年11月29日星期二


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接