php中,时间戳和date取得的时间是不同的。
时间戳是时间段,不受时区影响,无论哪个时区,取得都是格林威治的时间段。
date,是取得的系统时间,也就是加了时区的。
为了保持一致,php的头文件应该首先声明时区。
犯个错误,还得导数据库……
这个问题不知道你是如何发现的呢?
我一直使用却没有什么问题的。
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>
二月 4th, 2009 at 16:22:52
这个问题不知道你是如何发现的呢?
我一直使用却没有什么问题的。
date函数的说明如下:
返回将整数 timestamp 按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp 是可选的,默认值为 time()。
也就是说,date是先取time(),然后按照程序设定的格式显示这个时间。所以说,不会产生time和date取得时间不一样。
但是我在一次系统时间的调整中出现过这种问题。就是当linux系统安装时,如果选择的是utc,那么安装好系统后,linux里显示的时间是格林威治时间,但是bios里的硬件时钟由于是我们当地时区的时间(相信买来的主板肯定是按北京时间走的),这样就产生了时间差问题。当运行php程序时,会看到time取到的时间是格林威治时间,即linux的系统时钟。所以安装好系统后第一就是要调整时间,调整的顺序大致是先把格林威治时间写入硬件时间,然后再设定linux系统时钟为本地时间。这样的话,再重启系统后,就会发现time会取到当地时间了。
我说的是我个人遇到的问题。仅作为参考。