【问题标题】:How to use timezones with php dates?如何使用带有 php 日期的时区?
【发布时间】:2012-11-13 23:52:06
【问题描述】:

我有一个PHP 页面正在拉入日期字符串。

eg. 2012-11-10 11:37:06

我知道这个时间是在一个特定的时区。

我想将此日期存储在UTC 时间的MySQL 日期字段中,以便以后可以将其转换为客户的本地时间。

如何在PHP 中执行此操作?

【问题讨论】:

    标签: php mysql timezone utc


    【解决方案1】:

    要转换时区,请使用 DateTime 类http://www.php.net/manual/en/class.datetime.php

    // Create a DateTime object with your local time and local timezone.
    $d = new DateTime('2012-11-10 11:37:06', new DateTimeZone('Pacific/Auckland'));
    
    // Convert to UTC
    $d->setTimeZone(new DateTimeZone('UTC'));
    
    // outputs 2012-11-09 22:37:06
    echo $d->format('Y-m-d H:i:s');
    

    【讨论】:

    • $d 本身是否适合插入MySQL 日期字段?例如。 "UPDATE Table1 SET Date1 = $d"
    • 这是正确的,但您还需要确保您的 MySQL 连接时区设置为 UTC,通过发出以下命令:SET time_zone = '+0:00';,然后再执行您的 UPDATE 命令。如果你确定你的 MySQL 机器的默认时区设置是 UTC,你可以跳过这一步。
    猜你喜欢
    • 2018-06-07
    • 2019-03-04
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    相关资源
    最近更新 更多