Для каждого 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)
Поделитесь своим местоположением

      Как узнать IP-адрес сайта
      Как узнать IP-адрес сайта

      В сети интернет есть несколько сервисов, которые могут сообщить IP-адрес сайта. Зачастую, эти сайты кроме ввода имени домена требуют ввести капчу, иногда имя и адрес электронной почты... - вот такая бюрократия! Для того, чтобы определить IP-адрес DNS-сервера, к которому относится сайт, точнее его доменное имя, и без ввода всяких дополнительных даных, существует несколько способов. Самый простой - это через...




      FAA разрешила пилотам American Airlines использовать iPad как EFB
      FAA разрешила пилотам American Airlines использовать iPad как EFB

      Федеральное управление гражданской авиации США (Federal Aviation Administration, FAA) разрешило пилотам авиакомпании American Airlines использовать в полете планшеты iPad для просмотра электронных карт и чтения летной документации. Разрешение вступает в силу в пятницу, 16 декабря 2011 г. Сначала планшеты будут применяться на Boeing 777, а потом и на других типах самолетов из флота American...




      История Jeppesen
      История Jeppesen

      Компания, столь известная в мире, названа в честь своего основателя - Элри Бергера Джеппесена (Elrey Berger Jeppesen). Его имя навсегда останется в истории мировой авиации. Этот человек не только создал новый вид авиационного производства - обеспечение документами аэронавигационной информации, но и заложил основу для разработки стандартов построения схем захода на посадку по приборам. Элри...




      Как закачать видео на ipad
      Как закачать видео на ipad

      Какой формат видео поддерживает iPad? На данный момент (лето 2013 года) планшеты iPad поддерживают только 2 формата видеофайлов: 1. MPEG (файлы с расширением *.mp4 и *.m4v) 2. Qick Time (файлы с расширением *.mov) Все другие форматы iPad не поддерживает, и для их просмотра на яблочном планшете необходима конвертация с помощью специальной программы или установка на iPad отдельного приложения для просмотра...




      Как отключить стандартную оболочку в навигаторе EXPLAY PN-355
      Как отключить стандартную оболочку в навигаторе EXPLAY PN-355

      Все автомобильные GPS-навигаторы имеют меню с достаточного размера кнопками на сенсорном экране для выстрого запуска необходимых приложений, в первую очередь - программы для непосредственной навигации. Многие современные навигаторы имеют возможность менять путь к навигационной программе. Поэтому при установке альтернативного ПО есть возможность безболезненно через настройки меню задать временно или...




      Как повернуть экран компьютера?
      Как повернуть экран компьютера?

      Иногда бывает необходимо повернуть экран компьютера на 90° или 180°. Например, когда нужно сделать скриншоты относительно длинной web-страницы - чтобы не нужно было потом картинки склеивать в графическом редакторе. Ведь чаще всего даже уменьшение масштаба отображения страницы сайта (нажать клавишу CTRL и покрутить колесо мыши или кнопками изменения масштаба в браузере) не достаточно, чтобы вся...




      Программа Jeppesen Mobile TC
      Программа Jeppesen Mobile TC

      Программа Jeppesen Mobile TC является первым коммерческим аэронавигационным продуктом от фирмы Jeppesen для iPad. Программа включает в ребя 2 раздела: схемы аэродромов (кроки, заход на посадку, SID, STAR и др.) и текстовая часть сборников Jeppesen (ATC, Airport Directory, Meteorology и др...). В 2011 году Jeppesen анонсировал следующую программу - Jeppesen Mobile Flite Deck (Jepp Mobile FD),...



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