我在 DATETIME 字段中存储了 mysql 中的以下日期:
2012-04-16 16:21:54
比我这样选择它:
SELECT UNIX_TIMESTAMP(date) ....
但是如果我使用 php date 函数打印小时,我会得到一小时的差异:
echo date("H:i:s", $row->date)
将打印:
17:21:54
如果没有第二个参数,date 函数将返回正确的值。有什么想法吗?
根据 mysql 手册 -
UNIX_TIMESTAMP()
, UNIX_TIMESTAMP(date)
如果不带参数调用,则返回一个 Unix 时间戳(自 '1970-01-01 00:00:00' UTC 以来的秒数)作为无符号整数。如果使用 date 参数调用UNIX_TIMESTAMP()
,则返回参数的值(以自 '1970-01-01 00:00:00' UTC) 以来的秒为单位。date 可以是 DATE 字符串、DATETIME 字符串、时间戳或格式为 YYMMDD 或 YYYYMMDD 的数字。服务器将日期解释为当前时区中的值,并将其转换为 UTC 格式的内部值。客户端可以按照第 10.6 节 "MySQL 服务器时区支持"中所述设置其时区。
通过添加"e",您可以获得该时间戳的时区。
这可能与不同的时区有关。尝试使用 http://www.php.net/manual/en/function.date-timezone-set.php。
如果这不起作用,请探索日期函数的其余部分:http://php.net/manual/en/book.datetime.php