Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
vp-webdev
7 лет назад

Временная зона в PHP. Важная мелочь.

Разные задачи приходится решать. На этот раз задача была лёгкой, но только с одной стороны.
Задача: показ телефона только в рабочее время. То есть с 9 утра до 17 вечера, кроме субботы и воскресенья.



Условие было составлено следующее:

//Время суток в формате 24 часа
$time = date('G');
//на всякий случай подводим под численный тип
$time = (int) $time;

//День недели 1 — понедельник, 7 - воскресенье
$day = date('N');
//на всякий случай подводим под численный тип
$day = (int) $day;

//условие
if(($time < 16 and $time >= 9) and ($day <= 6)){
    echo 'Номер телефона';
}

Из условия видно, что оно сработает по всем дням, кроме воскресения и в период между 9:00 и 15:59.

Но не задача. Условие не срабатывало так как надо. И много было дум, почему же? И условие переправлял и проверял всё 100 раз, пока не вывел переменную $time и увидел что разница, аж в 2 часа!
Всё стало ясно необходимо указать интерпретатору временную зону, для этого идём в php.ini.
php.ini — это конфигурационный файл, содержащий настройки интерпретатора PHP.
У меня он лежит по следующему пути:

/etc/php/7.0/fpm/php.ini

Чтобы узнать путь к ini файлу - можно вызвать phpinfo() - в выдаче будет путь к ini файлу.

Если у вас другая версия PHP или он установлен не как PHP-FPM в Nginx - то путь у вас будет другой.

Ищем в нём строку date.timezone и видим, что она пуста да ещё и закомментирована.
Меняем
;date.timezone=
на
date.timezone=Europe/Moscow
И перезапускаем service php7.0-fpm restart. И всё, Profit.
Вот так, на первый взгляд простая задача, заняла 2 дня).
Данный пост подготовлен автором @zheev.
Заглавная картинка с сайта worldfb.ru

11
401.885 GOLOS
На Golos с August 2017
Комментарии (4)
Сортировать по:
Сначала старые