2

我有一些日期存储在 mysql 数据库中的 gmt 中。
假设客户时区偏移量为 -540;我将如何更正datetime来自数据库的信息以反映这一点?是否有一个方便的功能可以输入日期,或者我需要相应地添加或减去。

4

2 回答 2

4

也许这个片段会帮助你:

$format = 'Y-m-d';
$obj = new DateTime();
$date = date($format, strtotime($obj->format('Y-m-d H:i:s')) - $obj->format('Z'));

另请参阅http://www.php.net/manual/en/class.datetime.php了解更多信息。

于 2012-03-06T08:50:49.173 回答
4

由于您拥有 GMT 格式的数据项,因此您必须将它们转换为时间戳,使用strtotime此处的更多信息:http: //php.net/manual/en/function.strtotime.php 一旦有了时间戳,您可以从中减去偏移量(540 乘以 60 秒),然后将结果转换为新的日期字符串,使用date此处获取更多信息:http: //php.net/manual/en/function.date.php

这是可以做到这一点的代码的一个版本:

$dbValue = $row['date']; 
$timestamp = strtotime($dbValue) - (540*60);
$result = date("Y-m-d H:i:s", $timestamp);
于 2012-03-06T08:55:51.923 回答