2013-08-29 2 views
2

Im пытается получить имя дня в php на другом языке, кроме английского. Я изменил настройки локали на setlocale(LC_ALL, 'nl_NL'); (это возвращает true), но дата все еще отображается на английском языке. Затем я узнал, что вы должны использовать strftime() для того, чтобы работать, но это просто возвращает текущее время в заданном языке, и я пытаюсь цикл корыта ряда предопределенных дней, поэтому выход будетНазвание дня/месяца, которое не сегодня на другом языке в php

Vrijdag 30 Augustus

Zaterdag 31 Augustus

Зондаг 1 сентября

т.д.

Выделение/добавление дней из текущей временной метки также не является вариантом для того, что я хочу сделать.

+1

осторожно с 'LC_ALL', есть' LC_TIME', что вам действительно нужно. Это, и [этот вопрос задан раньше] (http://stackoverflow.com/questions/8744952/php-how-to-format-a-given-datetime-object-considering-localegetdefault) –

+0

Попробуйте использовать 'setlocale (LC_ALL, 'голландский'): 'Это работает для меня. Но 'nl_NL' не работает – Bora

ответ

2

Всякий раз, когда вам нужно манипулировать штемпеля даты/времени, основанный на местности, вы должны использовать STRFTIME

также изменить кодировку UTF-8

http://php.net/manual/en/function.strftime.php

пример:

<?php 
header('Content-Type: text/html; charset=UTF-8'); 

$myDate = "Feb 21, 2013"; 

$locale = 'fr_FR.utf8'; 
setlocale(LC_ALL, $locale); 
echo strftime('%d %B %Y', strtotime($myDate)); 

$locale = 'en_US.utf8'; 
setlocale(LC_ALL, $locale); 
echo strftime('%d %B %Y', strtotime($myDate)); 
?> 
0

Функция strftime принимает второй параметр: временная метка unix:

http://de1.php.net/manual/en/function.strftime.php

Вы можете просто преобразовать даты в временную метку unix и передать их в качестве второго параметра.