date('I')
(это заглавная буква i) возвращает 1, когда текущий часовой пояс по умолчанию указан в летнее время.
Если возвращается 1 вместо 0 и соответствующий часовой пояс не указан в DST , либо выбранный вами часовой пояс неверен или отсутствуют данные о часовом поясе, которые он использует даты.
Если вы можете, попробуйте использовать объект DateTime с объектом DateTimeZone , для которого установлен правильный часовой пояс . format('I')
вызов результирующего объекта должен быть правильным. Если это не так, то данные вашего часового пояса устарели. Иногда это делается на уровне сервера. Убедитесь, что база данных часовых поясов сервера обновлена. PHP иногда включает собственный файл данных о часовых поясах, поэтому вам может потребоваться вместо этого обновить PHP.