Я пишу скрипт, который использует функцию date () для регистрации.
В разных местах я использую date('Y-m-d')
, date('Y-m-d H-i-s')
и date(DATE_RFC822)
.
Когда я захожу на страницу со своего компьютера, используя Safari, Firefox и Chrome в Mac OS 10.6, страница загружается должным образом и не приводит к ошибке.
Когда коллега (которая находится в той же общей географической зоне и в том же часовом поясе, что и я) заходит на страницу со своего компьютера, используя ту же ОС и браузеры, что и я, она получает следующую ошибку в all браузеры:
date() [function.date]: 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 'America/New_York' for 'EST/-5.0/no DST' instead
Я предположил, что функция date () не зависит от часового пояса клиента, но, похоже, это говорит об обратном.
Я решил проблему, указав часовой пояс через date_default_timezone_set("America/New_York");
, но я хотел бы понять, почему клиент должен иметь какое-либо отношение к часовому поясу сервера.
Как и почему часовой пояс клиента влияет на обработку часовых поясов в PHP, особенно в отношении функции date () ?
Версия PHP: 5.2.5
Больше информации от phpinfo ():
date/time support enabled
"Olson" Timezone Database Version 2007.9
Timezone Database internal
Default timezone US/Eastern`