轉載自:http://web.jobbole.com/89120/
本部分的知識圖譜請參考程式設計語言知識圖譜-時間與日期。
本文JavaScript 時間與日期處理實戰:你肯定被坑過從屬於筆者的Web 前端入門與最佳實務中 JavaScript 入門與最佳實務系列文章。 JavaScript DateTime 標準時間
GMT即「格林威治標準時間」(Greenwich Mean Time,簡稱G.M.T.),指位於英國倫敦郊區的皇家格林威治天文台的標準時間,因為本初子午線被定義為通過那裡的經線。然而由於地球的不規則自轉,導致GMT時間有誤差,因此目前已不被當作標準時間使用。UTC是最主要的世界時間標準,是經過平均太陽時(以格林威治時間GMT為準)、地軸運動修正後的新時標以及以「秒」為單位的國際原子時所綜合精算而成的時間。UTC比GMT來得更加精準。其誤差值必須保持在0.9秒以內,若大於0.9秒則由位於巴黎的國際地球自轉事務中央局發布閏秒,使UTC與地球自轉周期一致。不過日常使用中,GMT與UTC的功能與精確度是沒有差別的。國際標準時間區會使用“Z”來表示。而在航空上,所有使用的時間劃一規定是國際標準時間。而且Z在無線電中應讀作“Zulu”(可參見北約音標字母),國際標準時間也會被稱為“Zulu time”。 TimeZone&UTC Offsets:時區與位移
人們經常會把時區與UTC位移量搞混,UTC位移量代表了某個具體的時間值與UTC時間之間的差異,通常用HH:mm形式表述。而TimeZone則表示某個地理地區,某個TimeZone中往往會包含多個位移量,而多個時區可能在一年的某些時間有相同的位移量。譬如America/Chicago, America/Denver, 以及 America/Belize在一年中不同的時間都會包含 -06:00 這個位移。 時間戳記
Unix時間戳記表示目前時間到1970年1月1日00:00:00 UTC對應的秒數。注意,JavaScript內的時間戳記指的是目前時間到1970年1月1日00:00:00 UTC對應的毫秒數,和unix時間戳記不是一個概念,後者表示秒數,差了1000倍。 時間數字字串格式 RFC2822
JavaScript
| 1 2 |
YYYY / MM / DD HH : MM : SS ± timezone (時區用 4位元字表示 ) // eg 1992/02/12 12:23:22+0800 |
ISO 8601
國際標準組織的國際標準ISO 8601是日期和時間的表示方法,全稱為《資料存放區和交換形式·資訊交換·日期和時間的表示方法》。目前最新為第三版ISO8601:2004,第一版為ISO8601:1988,第二版為ISO8601:2000。年由4位元組成,以西曆公元1年為0001年,以公元前1年為0000年,公元前2年為-0001年,其他以此類推。應用其他紀年法要換算成西曆,但如果發送和接受資訊的雙方有共同一致同意的其他紀年法,可以自行應用。 JavaScript