Для русификации вывода времени в PHP удобно пользоваться функцией setlocale. То есть если прописать в коде что-то вроде:


то мы получим вывод Вторник, 31 Июль 2012 по русски, а не по английски. Это весьма и весьма удобно. Но иногда setlocale не работает. То есть вместо русских дат выводятся английские.

Возможная причина – на вашем хостинге — не установлены нужные локали.

Если это шаред ( что маловероятно ) то нужно попросить саппорт установить нужные локали. Если это вдска или дедик –  то нужно проверить какие локали есть и установить необходимые.

Установка локалей на ВДС

Проверить установленные локали можно командой locale a  (  или удобнее locale a | grep ru  ). Если нужных локалей нет то их нужно установить. По дебиан это:


Выбираем и устанавливаем нужные локали. Я рекомендую выбрать только те что нужно. Если выбрать все, то установка их займет много времени, да и зачем они все нужны. Во втором окне нужно выбрать локаль по умолчанию. Я выбрал en_US.UTF-8.

Все, локали установлены, setlocale должен заработать.

1 августа 2012

Рубрики

Уже есть один комментарий к “Не работает setlocale() в PHP”

  1. Артур 14 июля, 2015

    Спасибо!

Есть что сказать по теме статьи? Пожалуйста - пишите!