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點整。