Функция php localtime() возвращает время UTC вместо местного времени

в php.ini я установил date.timezone = "Europe/Amsterdam". Перезапустил Apache, вывод в phpinfo() показывает правильный часовой пояс (Европа/Амстердам). Теперь, когда я печатаю date('H:i'), я получаю время UTC, которое на 2 часа отстает от нашего местного времени. Но когда я печатаю localtime(time(),true), я все равно получаю время UTC, хотя ожидал местное время.

Выход timedatectl:

Local time: Thu 2020-07-09 09:15:26 CEST
Universal time: Thu 2020-07-09 07:15:26 UTC
RTC time: Thu 2020-07-09 07:15:27
Time zone: Europe/Amsterdam (CEST, +0200)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no

Любая помощь, чтобы получить местное время приветствуется.

Обновление:

Вывод phpinfo():

date/time support                   enabled
timelib version                     2017.09
"Olson" Timezone Database Version   0.system
Timezone Database                   internal
Default timezone                    UTC

Directive                           Local Value         Master Value
date.default_latitude               31.7667             31.7667
date.default_longitude              35.2333             35.2333
date.sunrise_zenith                 90.583333           90.583333
date.sunset_zenith                  90.583333           90.583333
date.timezone                       Europe/Amsterdam    Europe/Amsterdam

Итак, date.timezone верен, но в чем разница с часовым поясом по умолчанию?

Когда я добавляю эту строку над скриптом, время подходит:

date_default_timezone_set('Europe/Amsterdam');

Но справочная страница PHP date_default_timezone_set сообщает, что Вместо использования этой функции для установки часового пояса по умолчанию в вашем скрипте вы также можете использовать настройку INI date.timezone для установки часового пояса по умолчанию. Это то, что я сделал, и это не работает.

Установка часового пояса по умолчанию в скрипте, конечно, является хакерским обходным путем; установить его в php.ini - лучший способ, поэтому мне все еще интересно, как это исправить.


person Roeland    schedule 16.07.2020    source источник
comment
Вы уверены, что отредактировали правильный файл php.ini?   -  person GeorgeGeorgitsis    schedule 16.07.2020
comment
Да, я так думаю, потому что результат в phpinfo() показывает правильный часовой пояс   -  person Roeland    schedule 16.07.2020
comment
Я обновил вопрос дампом phpinfo() и сделал шаг вперед к решению   -  person Roeland    schedule 16.07.2020
comment
Может быть, что-то/где-то в коде/фреймворке, который вы используете, перезаписывает настройку? Используете ли вы какой-либо фреймворк?   -  person GeorgeGeorgitsis    schedule 16.07.2020
comment
Хороший! Я использую Wordpress; настройки часового пояса в Wordpress были UTC. Я поменял их на Европу/Амстердам, но безрезультатно..   -  person Roeland    schedule 17.07.2020


Ответы (1)


В конце концов, я не нашел, как это правильно установить, но добавил этот обходной путь перед кодом, зависящим от времени:

date_default_timezone_set('Europe/Amsterdam');
person Roeland    schedule 26.10.2020