如何检查时间偏移是否在夏令时?

时间:2012-06-24 22:21:31

标签: php time timezone

我正在使用的CMS允许我访问用户与UTC / GMT时间的时间偏移。因此,如果用户将其时区设置为EST,则此偏移量将为“-5。”

当我需要显示当前时间时,我正在做的事情如下:

date('M j Y h:i A', time() + $offset*3600)

当夏令时对用户有影响时,外,

所以,我的问题是,我如何确定给定的时间偏移量(如“-5”)是否需要添加一小时呢?

3 个答案:

答案 0 :(得分:8)

http://php.net/manual/en/function.date.php

  

我(大写i)|日期是否在夏令时| 1如果夏令时,则为0。

这有帮助吗?

答案 1 :(得分:6)

您无法仅从偏移量中得出这一点,因为偏移量适用于整个纬度,而且那些国家/地区没有统一的DST生效。例如in Australia, Daylight Saving Time is not observed in Queensland, the Northern Territory or Western Australia但其他地方。您必须geolocate your users,然后与PHP's DateTimeZone API核对该国家/地区是否有DST。

另见How to automatically detect user's timezone?

答案 2 :(得分:2)

如果你所拥有的只是“-5”,那么你没有足够的信息来做出这个决定。如果您可以安排访问用户所在时区的名称(例如“America / New_York”),那将是更好的选择。