mysql插入到datetime没有输出正确的时间

时间:2012-10-28 23:33:02

标签: php mysql datetime format

我想用这种格式将数据保存到数据库:

date('Y-m-d H:i:s')

使用datetime数据类型,输出:

2012-10-29 00:18:14

为了检查它是否给出了正确的输出,我向我的表添加了一个时间戳,它返回插入/更新的当前日期和时间,它返回:

2012-10-29 07:18:14

我怀疑我的格式有问题。

3 个答案:

答案 0 :(得分:2)

听起来像是时区问题。

您可以使用date_default_timezonedate.timezone ini设置让PHP使用与MySQL相同的时区。

你可以看到MySQL时区:

select @@session.time_zone;

答案 1 :(得分:0)

你肯定想要使用这种格式:date('Y-m-d H:i:s')根据php手册(http://php.net/manual/en/function.date.php) - “H”用于24小时时间格式,“h”用于12小时格式,mysql将使用24小时时钟。 MySQL标准格式为“Y-m-d H:i:s”

然而,你在这里遇到了时区。我打赌你是UTC的7小时。尝试先设置您的时区:

date_default_timezone_set('UTC');或您想要的任何时区。

答案 2 :(得分:0)

TIMESTAMP存储在UTC (GMT) http://dev.mysql.com/doc/refman/5.5/en/datetime.html中,而DATETIME则不存在,因此是您的差异。