js判断当前时区【TimeZone】是否是夏令时

时间:2024-04-15 12:24:25
        var d1 = new Date(2009, 0, 1);
        var d2 = new Date(2009, 6, 1);
        if (d1.getTimezoneOffset() != d2.getTimezoneOffset())
        {
            alert(\'Daylight Saving Time\'); //夏令时
        }
        else
        {
            alert(\'Daylight Time\'); //非夏令时
        }

其实 d1 无论是哪一年的 1.1 日都可以,d2 与 d1 是同年的日期,即可判断。

附:

getTimezoneOffset() :

函数的返回值为Number类型,返回当前计算机上的时间和UTC时间之间相差的分钟数。一般而言,如果当地时间早于UTC时间(在UTC时区以东,例如亚洲地区),则返回值为负;如果当地时间晚于UTC时间(在UTC时区以西,例如美洲地区),则返回值为正。

GMT和UTC:

GMT,即格林尼治标准时间,也就是世界时。GMT的正午是指当太阳横穿格林尼治子午线(本初子午线)时的时间。但由于地球自转不均匀不规则,导致GMT不精确,现在已经不再作为世界标准时间使用。

UTC,即协调世界时。UTC是以原子时秒长为基础,在时刻上尽量接近于GMT的一种时间计量系统。为确保UTC与GMT相差不会超过0.9秒,在有需要的情况下会在UTC内加上正或负闰秒。UTC现在作为世界标准时间使用。

所以,UTC与GMT基本上等同,误差不超过0.9秒。

时区:

地球自西向东旋转,东边比西边先看到太阳,东边的时间也比西边的早。为了统一世界的时间,1884年的国际经度会议规规定将全球划分为24个时区(东、西各12个时区)。规定英国(格林尼治天文台旧址)为零时区(GMT+00),东1-12区,西1-12区,中国北京处于东8区(GMT+08)。若英国时间为6点整,则GMT时间为6点整,则北京时间为14点整。