【发布时间】:2011-11-22 23:05:39
【问题描述】:
我正在编写一个使用 date() 函数进行日志记录的脚本。
在不同的地方我使用date('Y-m-d')、date('Y-m-d H-i-s')和date(DATE_RFC822)。
当我在 Mac OS 10.6 中使用 Safari、Firefox 和 Chrome 从计算机访问该页面时,该页面按预期加载并且不会导致错误。
当一位同事(与我在同一地理区域和同一时区)从她的计算机访问该页面时,使用与我相同的操作系统和浏览器,她在所有中收到以下错误> 浏览器:
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`
【问题讨论】:
-
用户时区无关,php是服务器端,它显示你的服务器日期。
-
@Dagon 我知道它的目的是显示服务器的日期/时间。但是您如何解释调用 date() 函数会在一台机器上引发错误但在另一台机器上不会引发错误这一事实?
-
您是否在代码中的任何位置使用
ini_set('display_errors',VAL)?也许取决于用户代理? -
我的解释是你误解了这种情况,php是服务器端的,不知道浏览器是什么。
标签: php datetime date timezone