как конвертировать английский формат даты в немецкий формат даты в php - PullRequest
3 голосов
/ 29 ноября 2011

Привет, у меня есть такой формат даты

(в английском формате)

 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 голосов
/ 29 ноября 2011

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

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

РЕДАКТИРОВАТЬ: Цитата strftime docs:

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

4 голосов
/ 29 ноября 2011

Если у вас установлено расширение Интернационализация , вы можете использовать класс 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());

Какие выходы:

Динстаг, 29 ноября 2011 г.

...