【发布时间】:2012-11-13 23:52:06
【问题描述】:
我有一个PHP 页面正在拉入日期字符串。
eg. 2012-11-10 11:37:06
我知道这个时间是在一个特定的时区。
我想将此日期存储在UTC 时间的MySQL 日期字段中,以便以后可以将其转换为客户的本地时间。
如何在PHP 中执行此操作?
【问题讨论】:
我有一个PHP 页面正在拉入日期字符串。
eg. 2012-11-10 11:37:06
我知道这个时间是在一个特定的时区。
我想将此日期存储在UTC 时间的MySQL 日期字段中,以便以后可以将其转换为客户的本地时间。
如何在PHP 中执行此操作?
【问题讨论】:
要转换时区,请使用 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"
SET time_zone = '+0:00';,然后再执行您的 UPDATE 命令。如果你确定你的 MySQL 机器的默认时区设置是 UTC,你可以跳过这一步。