1

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

2012-04-16 16:21:54

比我这样选择它:

SELECT UNIX_TIMESTAMP(date) ....

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

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

会打印:

17:21:54

如果没有第二个参数,日期函数将返回正确的值。有任何想法吗?

4

2 回答 2

2

根据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 的数字。服务器将 date 解释为当前时区中的值,并将其转换为 UTC 中的内部值。客户端可以设置他们的时区,如第 10.6 节,“MySQL 服务器时区支持”中所述。

于 2012-04-16T11:38:20.787 回答
0

通过添加“e”,您可以获得该时间戳的时区。

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

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

于 2012-04-16T11:28:05.603 回答