mysql UNIX_TIMESTAMP返回不正确的值

时间:2012-04-16 11:24:56

标签: php mysql

我在DATETIME字段中存储的mysql中有以下日期:

2012-04-16 16:21:54

比我选择它:

SELECT UNIX_TIMESTAMP(date) ....

但如果我使用php日期函数打印小时,我会得到一小时的差异:

echo date("H:i:s", $row->date)

会打印:

17:21:54

没有第二个参数,日期函数返回正确的值。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

根据mysql手册 -

UNIX_TIMESTAMP()UNIX_TIMESTAMP(date)

如果不带参数调用,则返回Unix时间戳(自1970-01-01 00:00:00'UTC以来的秒数)作为无符号整数。如果使用日期参数调用UNIX_TIMESTAMP(),则它将参数的值返回为自“1970-01-01 00:00:00”UTC以来的秒数。 date可以是DATE字符串,DATETIME字符串,TIMESTAMP或格式为YYMMDD或YYYYMMDD的数字。服务器 将日期解释为当前时区中的值,并将其转换为UTC 中的内部值。客户端可以按第10.6节“MySQL服务器时区支持”中所述设置其时区。

答案 1 :(得分:0)

添加' e'你可以获得该时间戳的时区。

它可能与不同的时区有关。尝试使用http://www.php.net/manual/en/function.date-timezone-set.php

如果这不起作用,请浏览日期函数的其余部分: http://php.net/manual/en/book.datetime.php