我的本地MySQL服务器有一个奇怪的问题。我有一个表的created_at时间戳列默认设置为CURRENT_TIMESTAMP。我读到的所有内容都表明,这应该以UTC存储时间,然后将其转换回本地时间以供显示。然而,它不能正常工作。我不确定它是否在显示上搞砸了,但是当我读取时间戳时,它给了我格林尼治时间,而不是根据我的当地时区进行调整。这不是一个大问题,只是NOW() 是给我本地时间,所以我不能正确地比较它们。我觉得我可能错过了一些愚蠢的事情,但这是怎么回事?
如果有关系,我在64位Windows 8下运行MySQL 5.5.24(不幸的是)。
编辑:戳它一些更多的揭示了时间戳工作很好,当我手动添加行;只有来自PHP的行有问题。我猜PHP连接一定是出于某种原因重写了默认时区
是否加载了时区数据?
http://www.geeksengine.com/article/populate-time-zone-data-for-mysql.html啊哈!我的PHP服务器和MySQL服务器使用不同的时区。需要添加日期。timezone = America/New_York到我的php.ini文件