2015-03-23 3 views
1

Я работаю с SocialEngine4 с Zend. Переводчик этого приложения работает нормально. Но нам нужен другой формат даты для немецкого языка, поэтому мы внедрили новый код. Но он не переводит «Марш» должным образом. Он показывает дату «21. M rz 2015» вместо «21. März 2015».Strftime с немецким Date not translating "March" правильно

Я использовал следующий код для этого изменения

setlocale(LC_TIME, 'de_DE', 'deu_deu'); 
$date = strftime ("%d. %B %Y",strtotime($date)); 
setlocale(LC_ALL,NULL); 
echo $date; 

Пожалуйста, дайте мне знать, Что здесь неправильно.

+0

Я пробовал с вашим кодом, и он дает мне правильный выход, то есть «23. März 2015». Кажется, ваш формат даты не правильный. Попробуйте день («Y-m-d») сразу. Вы узнаете, в чем проблема. Когда вы хотите отобразить, там помещается кодировка в «utf-8-bin». –

+0

UTF-8 полностью через; это охватывает всюду, где вы должны установить кодировку, но в этом случае бит базы данных и соединителя не имеет особого значения: http://stackoverflow.com/questions/279170/utf-8-all-the-way-through – CD001

+0

Также , не забудьте отослать $ date INSIDE dom, а не OUTSIDE из dom, если вы установили правильную кодировку в свой HTML-документ. – briosheje

ответ

0

На странице, где отображается выход, убедитесь, что кодировка установлена ​​в utf-8.

Вы можете сделать это, добавив следующую строку в заголовок.

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

Поступая, что не должно быть никакой необходимости преобразовать немецкую Umlaute к именам объектов.

Однако, если по какой-то странной причине он все еще не работает, вы можете просто конвертировать все специальные символы в их имени сущность эквивалент:

echo htmlentities($date); 

Как что он должен работать наверняка.

Смежные вопросы