我想用这种格式将数据保存到数据库:
date('Y-m-d H:i:s')
使用datetime数据类型,输出:
2012-10-29 00:18:14
为了检查它是否给出了正确的输出,我向我的表添加了一个时间戳,它返回插入/更新的当前日期和时间,它返回:
2012-10-29 07:18:14
我怀疑我的格式有问题。
答案 0 :(得分:2)
听起来像是时区问题。
您可以使用date_default_timezone
或date.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
则不存在,因此是您的差异。