【发布时间】:2018-02-02 18:34:08
【问题描述】:
从 mysql 表中获取日期时间列时,我遇到了这种奇怪的行为。
这是场景:
通知表中有一个日期时间列,其中存储的日期和时间是正确的。
但是当我从 php 查询数据库时,我得到了错误的时间(UTC + 0:00,应该是 UTC - 05:00) 我的系统时区是 UTC - 05:00。
即使是 PHP 的日期函数也能返回正确的日期和时间。
我在下面附上了 3 张图片,显示了来自服务器、MySQL 和 PHP(有问题)的时间
我更改了系统时区,mysql时区和php时区,但问题仍然存在。
服务器是 ubuntu 机器上带有 php 7.0 的 nginx。
【问题讨论】:
-
你确定时区是为 php 和 mysql 设置的吗?不依赖系统时间,还有什么配置?
-
php 和 system 都是 America/New_York 而 mysql 是 utc-5:00
-
确保 php 和 mysql 服务器具有相同的时区,这是时区问题而不是 php 或 sql 查询问题
-
您确定 reply_on 字段是日期时间而不是时间戳,它始终是 UTC?
-
请在此处以纯文本形式发布代码、错误、示例数据或文本输出,而不是难以阅读的图像,不能复制粘贴以帮助测试代码或在答案中使用,并且对使用屏幕阅读器的人怀有敌意。您可以编辑问题以在问题正文中添加代码。使用
{}按钮来格式化任何代码块,或者使用四个空格缩进以获得相同的效果。 我们无法将您的屏幕截图作为代码运行。您的屏幕截图一团糟,而且这种编辑无论如何也没有效果。
标签: php mysql datetime nginx ubuntu-16.04