ChatMaster 3 Опубликовано: 25 февраля 2015 Рассказать Опубликовано: 25 февраля 2015 (изменено) Насколько это актуально? Вычитал на другом сайте В install.php при инсталяции используется date_default_timezone_get(), которая с версии PHP 5.5 не используется... ... Исправлять ничего не надо. Баг может себя проявить на свежеустановленном скрипте, если не выставить часовой пояс в админке самостоятельно. Попробую описать подробнее. Сегодня ставил клиенту скрипт. Установил, в админке в Настройках системы прописал Название сайта, Description, Keywords, Шаблон сайта по умолчанию. При этом не указал часовой пояс. Так как раньше у меня на сервере стоял PHP 5.3 часовой пояс брался серверный это указывалось автоматически, и я не обращал на это никогда внимание. Что делает скрипт. Так как при установке скрипта, date_default_timezone_get() не сработал в конфиге сохранилось время как UTC. При этом 4 тестовые новости - Осуществление технической поддержки скрипта Шаблоны для DataLife Engine Приобретение и оплата скрипта Добро пожаловать импортировались по текущему времени сервера. Уже при настройках скрипт вместо UTC выставил и сохранил первое значение из массива $langtimezones = array() которое оказалось (GMT-11:00) Остров Мидуэй Я не обратил на это внимание и сохранил... Теперь получалось что скрипт работал во времени GMT-11:00 а новости импортировались в GMT +3:00 До наступления времени публикации новостей 14 часов. Естественно у меня на свежеустановленном сайте не отображалась ни одна новость, ни на главной ни в категориях... Я полчаса не мог понять из-за чего и сидел ковырял сорцы.. Вроде и мелочь, но кто не сталкивался, может не понять и будет... Изменено 25 февраля 2015 пользователем ChatMaster Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 26 февраля 2015 Рассказать Опубликовано: 26 февраля 2015 В install.php при инсталяции используется date_default_timezone_get(), которая с версии PHP 5.5 не используется... На основании чего сделан данный вывод? Читаем документацию к PHP http://php.net/manua...imezone-get.php и видим что эта функция прекрасно работает и поддерживается и в PHP 5.5, а в данном случае когда не работает, просто имеется "криво" настроенный сервер, без указания часового пояса. С чем я согласен, то нужно будет предусмотреть в будущем данную "кривизну" настроек сервера, и выставить часовой пояс по умолчанию, например на "Москву", если сервер не настроен, при установке скрипта Цитата Ссылка на сообщение Поделиться на других сайтах
ChatMaster 3 Опубликовано: 27 февраля 2015 Рассказать Опубликовано: 27 февраля 2015 (изменено) Автор В install.php при инсталяции используется date_default_timezone_get(), которая с версии PHP 5.5 не используется... На основании чего сделан данный вывод? Читаем документацию к PHP http://php.net/manua...imezone-get.php и видим что эта функция прекрасно работает и поддерживается и в PHP 5.5, а в данном случае когда не работает, просто имеется "криво" настроенный сервер, без указания часового пояса. С чем я согласен, то нужно будет предусмотреть в будущем данную "кривизну" настроек сервера, и выставить часовой пояс по умолчанию, например на "Москву", если сервер не настроен, при установке скрипта На той странице которую вы указали, в общем то написанно - 5.4.0 The TZ environment variable is no longer used to guess the timezone. 5.4.0 The timezone is no longer guessed from information available through the operating system as the guessed timezone can not be relied on. Переменная окружения TZ больше не используется при угадывании временной зоны. Временная зона больше не угадывается с помощью информации, полученной из операционной системы, так как данный метод нестабилен и на него нельзя полагаться. Изменено 27 февраля 2015 пользователем ChatMaster Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 095 Опубликовано: 27 февраля 2015 Рассказать Опубликовано: 27 февраля 2015 ChatMaster, Это не говорит о не поддержки данной функции, в PHP 5.4 или PHP 5.5. Начиная с версии 5.3.x указание часового пояса обязательно в настройках PHP php.ini, а раньше было не обязательно. Смотрите описание функции откуда берутся значения часового пояса: In order of preference, this function returns the default timezone by: Reading the timezone set using the date_default_timezone_set() function (if any) Prior to PHP 5.4.0 only: Reading the TZ environment variable (if non empty) Reading the value of the date.timezone ini option (if set) Prior to PHP 5.4.0 only: Querying the host operating system (if supported and allowed by the OS). This uses an algorithm that has to guess the timezone. This is by no means going to work correctly for every situation. A warning is shown when this stage is reached. Do not rely on it to be guessed correctly, and set date.timezone to the correct timezone instead. Я выделил самое важное в данном вопросе жирным. И начиная с 5.4 для чтения конфигурации часового пояса по умолчанию считывается настройка PHP date.timezone из php.ini а не системная переменная TZ окружения ОС. Вот и вся разница. Просто часто обновляют PHP не читая инструкции по обновлению, нужно же обновлять настройки PHP, согласно новым требованиям и изменениям. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.