我想用这种格式将给定日期保存到数据库:
date('Y-m-d H:i:s')
使用 datetime 数据类型,它输出:
2012-10-29 00:18:14
为了检查它是否给出正确的输出,我在我的表中添加了一个时间戳,它返回插入/更新的当前日期和时间,它返回:
2012-10-29 07:18:14
我怀疑我的格式有问题。
听起来像是时区问题。
您可以使用date_default_timezone
或date.timezone
ini 设置让 PHP 使用与 MySQL 相同的时区。
您可以通过以下方式查看 MySQL 时区:
select @@session.time_zone;
你肯定要使用这种格式:date('Y-m-d H:i:s')
根据 php 手册 (http://php.net/manual/en/function.date.php) - “H” 用于 24 小时时间格式,“h” 用于 12小时格式,mysql 将使用 24 小时制。MySQL 标准格式为“Ymd H:i:s”
但是,您在这里遇到了时区问题。我敢打赌你离 UTC 有 7 小时的路程。尝试先设置您的时区:
date_default_timezone_set('UTC');
或您想要的任何时区。
TIMESTAMP
存储在UTC (GMT)
http://dev.mysql.com/doc/refman/5.5/en/datetime.html而DATETIME
不是,因此您的区别。