php添加或减去时区偏移量


php add or subtract timezone offset

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

由于数据项为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);

也许这个Snippet会帮助你:

$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以获取进一步的读数。