Ошибка PHP Strict Standards: date(), time() или date.timezone
[error] [client IP] PHP Strict Standards: date() [<a href=’function.date’>function.date</a>]: It is not safe to rely on the system’s timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/Moscow’ for ‘MSK/3.0/n
o DST’ instead in …
Иногда такими строками изобилуют логи ошибок web-сервера (apache тот же). В чем дело? Раньше ведь ошибок не было! Или были?… не помню…
Все дело в том, что в очередной версии php добавили timezone “по умолчанию”, которая используется в функциях даты-времени (date/time functions)
date.timezone “” PHP_INI_ALL Available since PHP 5.1.0.
Решается небольшой поправкой, которая “совместима” (звучит!) с предыдущими версиями php.
if (function_exists('date_default_timezone_set'))
date_default_timezone_set('Europe/Moscow');
Выдержка из List of Supported Timezones
Europe/Kiev
Europe/London
Europe/Minsk
Europe/Moscow
Europe/Riga
Europe/Samara
Europe/Simferopol
Europe/Tallinn
Europe/Tiraspol
Europe/Uzhgorod
Europe/Volgograd
Asia/Yekaterinburg
Asia/Novosibirsk
Asia/Krasnoyarsk
Asia/Irkutsk
Asia/Kamchatka
Asia/Magadan
Asia/Sakhalin
upd Для date.timezone в столбце Changeable стоит PHP_INI_ALL. Это означает установить её значение можно не только во время выполнения скрипта, но и в конфигурационных файлах:
- в .htaccess или httpd.conf следует добавить строку вида
php_value date.timezone "Europe/Moscow"
- в php.ini строку вида
date.timezone = Europe/Moscow
