Я написал скрипт, который использует функцию getdate(). Протестировал скрипт на Денвере с PHP5.3.1. Для тестирования установил error_reporting(E_ALL | E_STRICT). Никаких ошибок скрипт не выдал. Когда мой скрипт был выложен на реальный сервер, то появилась такая ошибка: Код (Text): Strict Standards: getdate() [function.getdate]: 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/no DST' instead in /home/u933406/site.com/www/parse.php on line 33 Откуда она возникла, учитывая то, что я тестировал скрипт с необходимым уровнем ошибок? Не предлагать только использовать date_default_timezone_set() - это и так понятно, что исправить. Хотелось бы знать саму причину, почему на Денвере ничего не было, а на сервере произошло.
Код (Text): date date/time support enabled "Olson" Timezone Database Version 2009.18 Timezone Database internal Default timezone Europe/Moscow 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/Moscow Europe/Moscow Кстати, в phpinfo() нашёл раздел с названием date, в котором находятся эти данные. Возможно на работающем сервере этого раздела нет (нет на сервер доступа чтобы посмотреть).
php.ini date.timezone = Europe/Moscow а так же можно вот так: date_default_timezone_set('Europe/Moscow')