Для каждого php-приложения очень желательно жестко настроить локаль, чтобы не зависеть от настроек сервера. Иначе, по "закону подлости" - в самый неподходящий момент могут возникнуть проблемы с отображением данных. Причем, "артефакты" могут вылезти не только после переезда/миграции на другой сервер, но и даже как будто вообще без причины.

Как установить локаль для PHP - set locale for PHP Как раз подобный случай и произошел недавно с одним web-сервисом, реализованным на PHP.




  

Один из скриптов отображал в интерфейсе приложения срок действия базы данных (совпадает с циклами AIRAC), и администратор этого сервиса заметил странную штуку: срок действия февральской базы данных - цикл 2102 имел весьма странный срок действия -  с 25 января 2021 по 25 января 2021, хотя должен был иметь срок действия с 25 февраля 2021 по 25 марта 2021.

Различные проверки и эксперименты с PHP-скриптом показали, что он выдает дату в формате, у которого сокращенное название месяца выводится на русском языке: 2021-Фев-25 и 2021-Мар-25. А приложение, которое использует данные API, совсем не понимает по-русски, ему необходимо давать всё на английском языке! Соответственно, оно не понимало, какой ему передается месяц и правращало его по умолчанию в первый месяц года.

Причину данного сбоя выяснить не удалось, миграция сервиса точно не выполнялась :), проводились ли какие-то работы на сервере - пока узнать не получилось. Наиболее вероятно,  что системный администратор сервера изменил язык сервера по умолчанию на русский. Поэтому была выполнена настройка локали для PHP с указанием английского языка. В PHP-скрипт была добавлена строка:

 

setlocale(LC_ALL, 'en_US', 'en_US.UTF8', 'en', 'english');

 

Можно было добавить в сокращенном виде:

 

setlocale(LC_TIME, "en_US.UTF-8");

 

 Важно: не перепутать и корректно указать индекс языка - английских языков несколько, не стоит писать en_En (нет такой локализации!), есть: en_Gb, en_Us, en_Au, en_Bz, en_Ca, en_Ie, en_Jm, en_Nz, en_Za, en_Tt.

 


 

 

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

  • LC_COLLATE – функции сравнения строк
  • LC_CTYPE – функции преобразования и классификации строк
  • C_MONETARYL – для функции localeconv()
  • LC_NUMERIC – задает символ десятичного разделения
  • LC_TIME – форматирование даты/времени
  • LC_MESSAGES – для системных сообщений

 

Установка часового пояса:

Часовой пояс Москвы (UTC + 3):

 

date_default_timezone_set('Europe/Moscow');

 

Часовой пояс UTC:

 

date_default_timezone_set('GMT');

 

Все варианты временных зон - на сайте php.net.

 

Комментарии (0)

Здесь не опубликовано еще ни одного комментария

Оставьте свой комментарий

  1. Опубликовать комментарий как Гость.
0 Значки
Вложения (0 / 3)
Поделитесь своим местоположением

      ADS-B с помощью спутников
      ADS-B с помощью спутников

      В 2018 году американская компания Aireon планирует ввести в действие первую в мире глобальную систему наблюдения за воздушным движением, расширив тем самым систему автоматически-зависимого наблюдения в режиме вещания - ADS-B (русский термин - АЗН-В) на всю планету. С помощью системы ADS-B космического базирования компания Aireon (система Aireon) будет предоставлять в режиме реального времени 100% зону...




      Фразы про БОЛЬ (PAIN)
      Фразы про БОЛЬ (PAIN)

      Выражения, в которых используется слово БОЛЬ (pain), использование их в повседневной речи и сравнение с русскими аналогами. 1. NO PAIN, NO GAIN (досл. «нет боли, нет выгоды») - Это выражение можно перевести как «не попотеешь, не заработаешь». Имеется русский аналог: «под лежачий камень вода не течет», «без труда не вытащишь и рыбку из пруда».Пример: If you want to be successful you should work hard....




      Обозначение типов данных вида ANS...
      Обозначение типов данных вида ANS...

      На некоторых проектах (чаще всего это встречается на финтех) используются обозначения типов данных в виде A<n> или A...<n> или ANS...<n> и другие. Выглядит это, соответственно как A5 или A...20 или ANS...12. Могут быть варианты вида N-3 и N 1...10. Расшифровка этих обозначений не валяется на каждом шагу в интернете и может, порой, заставить задуматься аналитика или, что еще хуже, стать причиной не корректной интерпретации требований.




      Калькулятор торта
      Калькулятор торта

      При приготовлении торта практически всегда кондитеры используют специальную рамку, которая определяет форму торта и ограничивает его размеры. Чаще всего эта рамка имеет форму круга, чуть реже - квадрата и прямоугольника. Остальные варианты - овал, сердце, ромб и различные эксклюзивные нестандартные формы - слишком редкие, чтобы принимать их во внимание. Это не важно - откуда был взят рецепт...




      Технический обзор спутниковой системы Aireon ADS-B
      Технический обзор спутниковой системы Aireon ADS-B

      Система вещательного автоматического зависимого наблюдения (ADS-B; русский термин - АЗН-В) космического базирования компании Aireon (система Aireon) будет предоставлять 100% глобальную зону наблюдения для всех участников авиационной деятельности. Система будет принимать и обрабатывать сигналы ADS-B, излучаемые на частоте 1090 МГц воздушными судами, оборудованными транспондерами ADS-B, без...




      Microsoft Word предсказал терракт 11 сентября!
      Microsoft Word предсказал терракт 11 сентября!

      11 сентября 2001 года два гражданских самолета врезались в башни Всемирного торгового центра в Нью Йорке. После чего башни-близнецы загорелись и через несколько часов рухнули, полностью развалившись на части... Одни (в том числе и американское правительство) считают Алькаиду виновной в этом терракте, другие подозревают в случившемся диверсию американской власти и американских спецслужб...




      Литературный проект Этногенез
      Литературный проект Этногенез

      Литературный проект Этногенез заявил о себе в 2009 году первым произведением "Маруся", а дальше понеслось... Создатели проекта очень грамотно объединили под эгидой литературы реальные исторические события, фантастику, фэнтези и кучу чего-то еще. Проект очень быстро стал популярным, в 2011 году стал частично коммерческим, но, тем не менее, авторы не запрещают размещать копии текстов и аудиотреков на сторонних сайтах.



Яндекс.Метрика
Сайт работает на быстром VPS/VDS хостинге от FASTVPS