0

我想用这种格式将给定日期保存到数据库:

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

使用 datetime 数据类型,它输出:

2012-10-29 00:18:14

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

2012-10-29 07:18:14

我怀疑我的格式有问题。

4

3 回答 3

2

听起来像是时区问题。

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

您可以通过以下方式查看 MySQL 时区:

select @@session.time_zone;

                                 

于 2012-10-28T23:35:26.973 回答
0

你肯定要使用这种格式: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');或您想要的任何时区。

于 2012-10-28T23:44:44.317 回答
0

TIMESTAMP存储在UTC (GMT) http://dev.mysql.com/doc/refman/5.5/en/datetime.htmlDATETIME不是,因此您的区别。

于 2012-10-28T23:45:59.573 回答