【问题标题】:Convert MySQL datetime to different timezones将 MySQL 日期时间转换为不同的时区
【发布时间】:2013-09-19 16:04:42
【问题描述】:

我一直在这里和 Google 上阅读有关 MySQL 存储日期时间和日期的方式的信息,但我似乎无法很好地理解它,以及我需要做什么来实现我的目标。我也不完全确定我的主机设置是否正确,因为它的行为似乎与我预期的不一样。

我的目标是:日期时间和日期将存储为 UTC +00:00。然后,当用PHP查询数据库时,日期时间和日期会根据用户的设置进行转换,然后再显示出来。

使用 SELECT @@global.time_zone, @@session.time_zone 查询服务器;两者都返回 SYSTEM。

另外,如果我尝试使用 SET time_zone '-05:00' 进行查询;它不会更改从服务器输出的日期时间。将其更改为任何其他值也不会更改它。

【问题讨论】:

    标签: php mysql date datetime timezone


    【解决方案1】:

    MySQL 只与运行它的服务器交互,因此它只会给出该服务器的时区。你必须get the time zone on the client side

    编辑:

    MySQL 没有时区文字,因此您可以使用 UTC_TIMESTAMP() 来获取 UTC 中的当前时间,或者您可以将时间转换为其他地方。

    【讨论】:

    • 对,那么我将如何强制它将日期时间保存为 UTC 00:00,然后在拉取时将其转换?
    • 在存储之前将其转换为 UTC。如果您只需要一个时间戳,请使用UTC_TIMESTAMP()
    • 如果我理解正确,UTC_TIMESTAP()(而不是说,NOW())将存储当前 UTC 00:00 时间?那我以后怎么操作呢? MySQL/PHP 中有没有可以为我做的函数?
    猜你喜欢
    • 1970-01-01
    • 2015-11-27
    • 2019-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    相关资源
    最近更新 更多