Работаю в LXC-контейнере под Proxmox. Версия PHP: 7.1.33-16+ubuntu18.04.1+deb.sury.org+1
Проблема в том, что одно из сторонних приложений делает сравнение
$timeZoneLocal = date_default_timezone_get();
$timeZoneGlobal = ini_get('date.timezone');
if (strcmp($timeZoneLocal, $timeZoneGlobal) || strlen($timeZoneGlobal) < 1) {
// если сюда попадаем, то далее будет всё плохо
} else {
echo Html::tag('p', "Установленный часовой пояс: {$timeZoneGlobal}");
}
Что выводит браузер при этом:
$timeZoneLocal = date_default_timezone_get(); // пусто
$timeZoneGlobal = ini_get('date.timezone'); // UTC
Захожу на сервер и смотрю что там:
php -r "var_dump(ini_get('date.timezone'),date_default_timezone_get());"
string(0) ""
string(13) "Europe/Moscow"
Вызываю в браузере
<?phpОбращаю внимание на всякий случай на
phpinfo();
?>
Loaded Configuration File /etc/php/7.1/fpm/php.iniДалее перехожу к блоку date, где наблюдаю:
date/time support enabled
timelib version 2016.05
"Olson" Timezone Database Version 0.system
Timezone Database internal
Default timezone UTC
Возвращаюсь в консоль, вывожу php -i и смотрю блок date:
date/time support => enabled
timelib version => 2016.05
"Olson" Timezone Database Version => 0.system
Timezone Database => internal
Default timezone => Europe/Moscow
Проверяю файл /etc/php/7.1/fpm/php.ini:
[Date]Больше в этом файле по-поводу timezone ничего не обнаруживается.
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Moscow
Вопрос в общем-то один: что вообще происходит? :)
Спасибо!