Есть скрипт: PHP: <?php setlocale(LC_TIME, 'ru_RU.utf8'); echo strftime('%d %B %Y', strtotime('now')); На локалке выводит всё правильно "25 марта 2019". На продакшене "25 Март 2019". Не могу понять в чём дело может библиотеки какие то отличаются или настройка какая то где то есть.
Есть такая штука может поможет. PHP: function dateToRussian($date) { $month = array("january"=>"января", "february"=>"февраля", "march"=>"марта", "april"=>"апреля", "may"=>"мая", "june"=>"июня", "july"=>"июля", "august"=>"августа", "september"=>"сентября", "october"=>"октября", "november"=>"ноября", "december"=>"декабря"); $days = array("monday"=>"Понедельник", "tuesday"=>"Вторник", "wednesday"=>"Среда", "thursday"=>"Четверг", "friday"=>"Пятница", "saturday"=>"Суббота", "sunday"=>"Воскресенье"); return str_replace(array_merge(array_keys($month), array_keys($days)), array_merge($month, $days), strtolower($date)); } echo dateToRussian(date('l, j F Y')).' года';
Это не костыли, это универсализированный вариант, чтоб не было траты времени на то, на что тратите Вы)
Пожалуй не соглашусь, настройки у каждого сервака могут отличаться, а если подстраивать по локали и прочее, то всегда будут сюрпризы при миграции, на другую операционку или поднятии бэкапа на перенастроенную операционку или после обновлений и пр. пр. пр... Однако, каждому своё)
Так вроде прозвучала причина: используется системная локаль, она может отличаться в разных ос или дистрибутивах ос. Что такое локаль знаешь? Хочешь сделать их одинаковыми — подавай запросы мейнтейнерам этих дистрибутивов. Хочешь чтобы работало везде — делай свою функцию как подсказывают.