【问题标题】:How to check if a time offset is in daylight savings time?如何检查时间偏移是否在夏令时?
【发布时间】:2012-06-26 06:08:30
【问题描述】:

我使用的 CMS 允许我访问用户与 UTC/GMT 时间的时间偏移量。因此,如果用户将他们的时区设置为 EST,那么这个偏移量将是“-5”。

当我需要显示当前时间时,我现在正在做的事情是这样的:

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

这有效,除了当夏令时对用户有影响时,它会晚一个小时。

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

【问题讨论】:

    标签: php time timezone


    【解决方案1】:

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

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

    这有帮助吗?

    【讨论】:

      【解决方案2】:

      您不能仅从偏移量中得出这一点,因为偏移量适用于整个纬度,并且该地区的国家/地区没有有效的统一 DST。例如in Australia, Daylight Saving Time is not observed in Queensland, the Northern Territory or Western Australia,但在其他任何地方。您必须先geolocate your users,然后再与PHP's DateTimeZone API 确认该国家/地区是否有夏令时。

      另见How to automatically detect user's timezone?

      【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-11-25
        • 2012-08-06
        • 2013-01-21
        • 2017-01-29
        • 2018-01-12
        • 2012-05-26
        • 2013-12-23
        • 2015-06-08
        相关资源
        最近更新 更多