Почему в моей системе по умолчанию установлен часовой пояс PHP "Европа / Москва"? - PullRequest
1 голос
/ 29 октября 2019

Я использовал PHP на многих версиях Ubuntu, и все они демонстрируют одну и ту же «особенность». Когда я выгружаю выходные данные функции phpinfo() на веб-страницу, я вижу следующее:

Default timezone:   Europe/Moscow

, когда оба файла php.ini (/etc/php/7.?/apache2/php.ini и /etc/php/7.?/cli/php.ini) имеют date.timezoneустановка закомментирована, как это имеет место по умолчанию.

Часовой пояс моей системы всегда был правильно установлен на Europe/Istanbul:

$ file /etc/localtime
/etc/localtime: symbolic link to /usr/share/zoneinfo/Europe/Istanbul

Однако PHP считает, что мой местный часовой поясEurope/Moscow вместо. В настоящее время эти два часовых пояса похожи, но это было не так в прошлом и, возможно, не так в будущем.

Чтобы решить эту проблему, каждый раз при обновлении этих файлов php.ini (например,, после обновления или обновления системы) Я должен вручную отредактировать их и установить:

date.timezone = Europe/Istanbul

В чем причина этого странного поведения и что я могу сделать, чтобы решить эту проблему?

В настоящее время я нахожусь на Ubuntu 19.10 с PHP 7.3, но проблема существует и в предыдущих версиях ОС и PHP.

1 Ответ

0 голосов
/ 30 октября 2019

Вы сами сказали, что Москва и Стамбул находятся в одном часовом поясе. Если вы беспокоитесь о том, что ваши PHP-программы могут не функционировать в случае, если это когда-либо изменится, вы можете использовать функцию

date_default_timezone_set ( string $timezone_identifier ) : bool

для переопределения файла php.ini. Я включил ссылку в документацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...