我想建立一个系统,显示时间取决于特定国家/地区的时区。例如。我的数据库中的表格在一个字段中包含国家/地区名称,在其旁边的列中,它将包含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 - / +时间。从长远来看,这项工作是否正常?
另外,使用这种方法,可以计算夏令时吗?
答案 0 :(得分:0)
使用DateTimeZone
是正确的方法。
如果您提供了zoneinfo键(例如America / New_York,或者示例中的Antarctica / South_Pole),夏令时将被计算在结果中,如果您只有一个天真的数据库,则不会出现这种情况。已存储UTC偏移量。