php - 无法用德语获取日期

时间:2014-02-09 15:49:40

标签: php date setlocale

我尝试用德语显示日期,但它不起作用。我正在使用PHP和XAMPP。

这些是我的方法:

function get_Datetime_Now() {
setlocale (LC_TIME, "de_DE");
$tz_object = new DateTimeZone('Europe/Zurich');
$datetime = new DateTime();
$datetime->setTimezone($tz_object);     
return $datetime->format('l, d. F Y  ');
}

echo get_Datetime_Now();

它返回“2014年2月9日星期日”,但我不是“Sonntag,09。2014年2月”(德语)。

我也试过这个:

setlocale(LC_TIME, "de_DE");
echo strftime("%A, %d. %B %Y");

它还会返回“2014年2月9日星期日”。我在互联网上看到了许多不起作用的例子(至少在我的环境中)。

我应该检查哪些设置?

我感谢任何帮助!

提前, 西瓦

4 个答案:

答案 0 :(得分:9)

你可能正在使用一台Windows机器,它在PHP中的语言代码与基于Unix的语言代码不同。

尝试:

setlocale(LC_TIME, 'de_DE', 'deu_deu');

这将首先尝试将其设置为'de_DE'(Linux / Unix)并将'deu_deu'代码作为Windows的后备(PHP版本> = 4.3)。

Example in the german PHP documentation

答案 1 :(得分:2)

您可以尝试:

setlocale(LC_TIME, 'de_DE', 'de_DE.UTF-8');
echo strftime("%A, %d. %B %Y");

为我工作

答案 2 :(得分:2)

我只是评论感谢Tim Bodeit,如果有人想要用西班牙语设置月份,这就是对我有用的代码:

setlocale(LC_TIME, 'es_ES', 'esp_esp');

答案 3 :(得分:0)

locale参数是将linux与windows进行比较的其他参数

见这里:

通常在胜利下是“DEU”或“GERMAN”。