как преобразовать английский формат даты в немецкий формат даты в 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

Вы можете использовать функцию setlocale перед вызовом функции date :

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

EDIT: Цитата из strftime docs:

Этот пример будет работать, если в вашей системе установлены соответствующие локали.

Если у вас установлено расширение интернационализации , вы можете использовать класс 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, 29. ноября 2011 г.