2011-11-29 167 views
2

您好我有一个日期格式这样如何英语日期格式转换为德国日期格式在PHP

(英文格式)

15. July 2011 

而且我想把它转换成在这样的德国格式

15. Juli 2011 

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

我的代码是

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

但这不是将我得到July而不是Juli

回答

4

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

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

编辑:来自strftime的报价cs:

如果您的系统中安装了各自的语言环境,则此示例可以使用。

+0

我已经更新了我的问题 –

+0

strftime的第二个参数应该是11月29日时间戳,而不是字符串。 – matino

+0

如果您有编码问题:在我们的CentOS设置的编码语言环境必须是'de_DE.UTF8',不'de_DE.UTF8'。 – DanFromGermany

3

如果您安装了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