Warning: curl_exec() has been disabled for security reasons in /pub/host/sunboyu/sunboyu/www/wp-includes/http.php on line 1022
发现问题,PHP中时间的一些细节 » Blog Archive 一个程序猿 孙小一,孙小二,PHP,MYSQL,LINUX,APACHE,原创技术,扯淡

发现问题,PHP中时间的一些细节

作者 : admin 于 2009-02-01 21:53:18 标签: ,
2009
02-1

php中,时间戳和date取得的时间是不同的。

时间戳是时间段,不受时区影响,无论哪个时区,取得都是格林威治的时间段。

date,是取得的系统时间,也就是加了时区的。

为了保持一致,php的头文件应该首先声明时区。

犯个错误,还得导数据库……

评论列表

  1. bigCAT Says:

    这个问题不知道你是如何发现的呢?

    我一直使用却没有什么问题的。

    date函数的说明如下:
    返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()。

    也就是说,date是先取time(),然后按照程序设定的格式显示这个时间。所以说,不会产生time和date取得时间不一样。

    但是我在一次系统时间的调整中出现过这种问题。就是当linux系统安装时,如果选择的是utc,那么安装好系统后,linux里显示的时间是格林威治时间,但是bios里的硬件时钟由于是我们当地时区的时间(相信买来的主板肯定是按北京时间走的),这样就产生了时间差问题。当运行php程序时,会看到time取到的时间是格林威治时间,即linux的系统时钟。所以安装好系统后第一就是要调整时间,调整的顺序大致是先把格林威治时间写入硬件时间,然后再设定linux系统时钟为本地时间。这样的话,再重启系统后,就会发现time会取到当地时间了。

    我说的是我个人遇到的问题。仅作为参考。

发表评论




XHTML:你可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(若看不到验证码,请重新加载页面。)