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

      Шезлонг Ларри или Мечты сбываются
      Шезлонг Ларри или Мечты сбываются

      В 1982 году Ларри Уолтерс, пенсионер из Лос-Анджелеса решил осуществить давнюю мечту - полететь, но не на самолете. Он изобрел собственный способ путешествовать по воздуху. Уолтерс привязал к удобному креслу сорок пять метеорологических шаров, наполненных гелием, каждый из которых имел метр в диаметре. Он уселся в кресло, взяв запас бутербродов, пиво и дробовик. По сигналу, его друзья отвязали веревку,...




      Apple закрывает программы развертывания DEP и VPP
      Apple закрывает программы развертывания DEP и VPP

      Программы развертывания Apple - Device Enrollment Program (DEP) и Volume Purchase Program (VPP) с 1 декабря 2019 года перестанут существовать. Deployment Programs - DEP и VPP будут объединены в одну и их заменит единая программа - Apple Business Manager (для коммерческих компаний) и Apple School Manager (для образовательных учреждений). Для того, чтобы продолжить использование программой регистрации устройств (DEP) и программой...




      iTunes не синхронизирует программы
      iTunes не синхронизирует программы

      Ситуация: вы подключили свой iPad или iPhone к компьютеру с помощью кабеля. Программа iTunes запустилась сама, или вы ее принудительно запустили, но функция синхронизации приложений (программ) не активна! :( Выражается это в невозможности установить/убрать галочку на Синхронизации приложений - вся станица "Программы" выглядит не активной.




      Как быстро удалить все фото и видео с iPhone
      Как быстро удалить все фото и видео с iPhone

      Устройства iPhone и iPad имеют довольно серьёзный недостаток - отсутствие нормального человеческого доступа к файловой системе устройства. По этой причине пользователям очень неудобно загружать различные файлы на мобильные устройства с компьютера и наоборот. Последние модели iPhone имеют очень крутые фотокамеры, позволяющие за несколько секунд делать потрясающие снимки (да, об этом никто даже не...




      Как почистить кэш панели управления ISP Manager 5
      Как почистить кэш панели управления ISP Manager 5

      Иногда в панели управления сервером ISP Manager Lite в интерфейсе могут быть "глюки", например, отсутствие некоторых элементов управления или всплывающие окна с указанием на ошибку.




      Санкции против российской авиации
      Санкции против российской авиации

      В начале марта 2022 года США и Европа ввели новые санкции против России. Не смотря на то, что многие уже привыкли к разным санкциям со стороны "буржуев", в этот раз все оказалось гораздо серьезнее. И в этот раз под санкции попала Российская авиация.  Во-первых, Евроконтроль закрыл свое воздушное пространство для российских ВС. Во-вторых, иностранные компании, которые ранее передали свои самолеты Boeing и Airbus в лизинг...




      Сравнение PDF-файлов
      Сравнение PDF-файлов

      Существует множество программ для сравнения текстовых файлов типа TXT, DOC и т.п. Такие программы могут легко сравнить два файла и отобразить в отчете все различия: что было удалено, что было добавлено, а что не было отредактировано и осталось без изменения. Программами для сравнения файлов часто пользуются программисты, составители различных инструкций, ТЗ и др. документации, которым приходится периодически...



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