2016-06-16 12 views
3

Я должен отображать дату, которую я выбираю из своей БД, дата всегда отображается на английском языке, мой сайт является билайн, EN/DE.Перевод даты на язык по умолчанию или на выбранный язык

мой PHP код

setlocale(LC_ALL, "de_DE.utf8"); 
    ... 
    $myDate='2016-06-17'; //example 
    echo strftime(date_format(date_create($myDate), "l, j F Y ")) 

Но это не работает, я его всегда в EN Friday, 17 June 2016

UPDATE: Я мог бы использовать

strftime("%B %e, %G",date_timestamp_get(date_create($myDate))) 

я получаю Juni 17, 2016, но потом Я теряю название дня, поэтому я должен использовать также date_format

+0

Возможное дублирование: [http://stackoverflow.com/questions/12716427/output-php-date-with-the-right-language](http://stackoverflow .com/questions/12716427/output-php-date-with-the-right-language) –

+0

Это не дублирование, я не использую функцию date() –

+0

Каков результат 'setlocale'? (try 'var_dump (setlocale (LC_ALL," de_DE.utf8 ")))) – Jocelyn

ответ

3

Следующий код дает ожидаемый результат:

setlocale(LC_ALL, "de_DE.utf8"); 
$myDate='2016-06-17'; //example 
echo strftime("%A, %e %B %Y", date_create($myDate)->getTimestamp()); 

Согласно документации, strftime аргументы являются строка формата и метку времени. Второй аргумент, который вы указали, не является меткой времени.

+0

Ты мой герой, спасибо большое –

0

Там вы в основном две проблемы:

  • Не прилипают к одному соответствующему типу данных даты и смешать его со слишком большим количеством строк.
  • Не используйте функции, описанные в документации.

strftime() функция ожидает метку времени Unix в качестве второго аргумента, но date_format() возвращает строку (она может вернуть строку с меткой времени, но это не из-за l, j F Y). Вы также используете strftime(): первый аргумент - это формат, а не метка времени. Кроме того, вы используете DateTime объекты в качестве прокси-сервера без какой-либо выгоды.

попробовать что-то проще:

setlocale(LC_ALL, "de_DE.utf8"); 
$myDate = strtotime('2016-06-17'); //example 
echo strftime('Write proper format there', $myDate); 
Смежные вопросы