Для каждого 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 можно указать отдельный параметр, на которые будет влиять локаль:
Часовой пояс Москвы (UTC + 3):
date_default_timezone_set('Europe/Moscow');
Часовой пояс UTC:
date_default_timezone_set('GMT');
Все варианты временных зон - на сайте php.net.
Для расчета взлетно-посадочных характеристик приходится оперировать различными данным, в том числе располагаемыми дистанциями: TORA,TODA, ASDA и LDA. Каждый аэродром должен определять располагаемые дистанции для всех имеющихся ВПП (для каждого торца) для публикации их в АИПе или в НОТАМ.
27 сентября 2011 года вышла новая версия популярного браузера Mozilla Firefox - седьмая (7). Поздравляем рыжую лисичку с очередной реинкарнацией! Ура! :) Если честно, то в последнее время обновления браузеров (и Firefox и Opera) напоминает какую-то гонку вооружений. Индекс версии меняется на порядок! Неужели на столько глобальные изменения подвергают эти программы?
Очень просто - нажать CMD + ALT + ESCили CMD + Option + ESC В яблочной операционной системе нет как такового диспетчера задач, но имеется его упрощенный аналог - "Принудительное завершение программ".
Еще летит твой самолет, куда? - ты сам пока не знаешь.Штурвал берет другой пилот, а ты об этом лишь мечтаешь... В. Захаров Фотографии Стива Морриса завораживают, и не важно, что на большинстве фотографий Стива не видна окраска воздушных судов, по которой можно идентифицировать принадлежность к авиакомпании, виден только силуэт, по которому угадывается тип и модификация ВС. Такой подход позволяет...
Есть такое iOS-приложение - Garmin Pilot, которое можно было бы назвать замечательным, но с марта 2022 года она стало немного иным... Но, довольно грустной лирики, ибо есть люди, которые до сих пор пользуются этим приложеним не смотря ни на что. Итак, в некоторых случаях пилотам может понадобиться выполнять полет и контролировать местоположение ВС относительно некого трека, который был записан ранее. Если...
Основываясь на обратной связи от пилотов, компания Jeppesen приняла решение усовершенствовать свои IFR-схемы процедур SID и STAR. Эти усовершенствования нацелены на повышение ситуационной осведомленности, сократить продолжительность полета по приборам без наблюдения за внекабинной обстановкой (reduce heads-down time = уменьшение времени отвлечения внимания пилотов от пилотажных приборов) и,...
При использовании Программы Развертывания (Deployment Program) BYOD при установке профиля регистрации (Enrollment Profile) мобильного устройства на MDM-сервере, установка профиля может не выполнится, а мобильное устройство отобразит сообщение с ошибкой: Сбой установки профиля. iPad не активирован При установке профиля регистрации на контролируемые устройства (supervised devices) такая ошибка не может быть в принципе. Но если планшет является личным устройством, и...