根据数据库的时区设置时间

时间:2011-04-01 13:33:37

标签: php time timezone gmt

我想建立一个系统,显示时间取决于特定国家/地区的时区。例如。我的数据库中的表格在一个字段中包含国家/地区名称,在其旁边的列中,它将包含GMT比较的时区,如-0100或-0200。

我需要在网页上设置当前GMT时间($ time),然后从数据库中提取信息并将$ time改为GMT -1或GMT -2。

有人能告诉我最简单的方法吗?

感谢您的帮助

编辑:

到目前为止,我有这段代码:

    <?php

$time = date("H:i:s", time());
echo $time;
echo "<br/><br/>";
$myDateTime = new DateTime($time, new DateTimeZone('GMT'));
$myDateTime->setTimezone(new DateTimeZone('Antarctica/South_Pole'));
echo $myDateTime->format('Y-m-d H:i');
?>

似乎可以完成这项工作,我可以进入数据库'Antarctica / South_Pole'而不是GMT - / +时间。从长远来看,这项工作是否正常?

另外,使用这种方法,可以计算夏令时吗?

1 个答案:

答案 0 :(得分:0)

使用DateTimeZone是正确的方法。

如果您提供了zoneinfo键(例如America / New_York,或者示例中的Antarctica / South_Pole),夏令时将被计算在结果中,如果您只有一个天真的数据库,则不会出现这种情况。已存储UTC偏移量。