php添加或减去时区偏移量

时间:2012-03-06 08:45:46

标签: php timezone-offset

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

2 个答案:

答案 0 :(得分: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了解更多信息。

答案 1 :(得分:3)

由于您拥有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);