PHP день недели числовой день недели текст не английский

Я попытался использовать функцию setlocale() в окнах для преобразования имени дней на другом языке, но это не сработало.

 <?php setlocale(LC_ALL, 'nl_NL'); echo date("l", strtotime($variable); ?> 

У кого-нибудь есть альтернатива для setlocale() ? Я использую фреймворк Codeigniter.

nl_NL – типичное имя языкового стандарта Unix. В Windows локали следуют в другом формате . Вы хотите «nld», «holland» или «нидерланды» .

Кроме того, date() не является локальным. Вы, вероятно, хотите strftime() .

Вы должны рассмотреть возможность использования расширения intl с IntlDateFormatter .

Из документации :

 $fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN ); echo "First Formatted output is ".$fmt->format(0); $fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL,IntlDateFormatter::FULL,'America/Los_Angeles',IntlDateFormatter::GREGORIAN ); echo "Second Formatted output is ".$fmt->format(0); 

выход

 First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00 

date не форматирует даты в соответствии с локалью. strftime делает.

 setlocale(LC_ALL, 'german'); echo (iconv('ISO-8859-2', 'UTF-8', strftime('%Y. %B %d. (%A)', mktime('0', '0', '0', '6', '18', '2010')))); setlocale(LC_ALL, 'hungarian'); echo (iconv('ISO-8859-2', 'UTF-8', strftime('%Y. %B %d. (%A)', mktime('0', '0', '0', '6', '18', '2010')))); 

Вы можете использовать strftime для локальной даты:

 setlocale(LC_TIME, 'it_IT'); $timestamp = strtotime("31-12-2012"); echo strftime("%A", $timestamp);