2011-04-01 91 views
0

我想制作一个显示时间依赖于特定国家/地区的时区的系统。例如。我的数据库中的表格包含一个字段中的国家/地区名称,在其旁边的列中将包含格林威治标准时间比较时区,如-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'); 
?> 

这似乎做的工作,我可以进入数据库“南极洲/南极'而不是GMT -/+时间。从长远来看,这会做好工作吗?

另外,使用这种方法,夏令时会计算出来吗?

+0

我并不完全关注你,但为什么你不只是在UTC中以UTC(格林威治标准时间)格式存储时间戳,并根据当前用户的时区将这些时间转换为本地时间? – wimvds 2011-04-01 13:54:04

+0

此页面只能在我们的办公室查看。我们需要的是,如果有人从阿富汗打来的电话,我们需要在页面上写上一段说'GMT time'的文章,然后是另一篇说'当地时间'的文章,并在阿富汗提供时间。 – 2011-04-01 14:01:48

回答

0

使用DateTimeZone是正确的方法。

如果您使用zoneinfo键(例如America/New_York或南极洲/ South_Pole,如您的示例)提供它,夏令时将被计入结果中,如果您只有一个天真的数据库UTC偏移量存储。