首頁 > web前端 > js教程 > JavaScript 中的日期和時間

JavaScript 中的日期和時間

高洛峰
發布: 2016-11-28 11:41:00
原創
1106 人瀏覽過

前言
本篇的介紹涵蓋以下部分:

1. 時間標準指的是什麼? UCT和GMT 的概念、關聯和差異?


2. 時間表示標準有哪些?

3. JS 中時間的處理


日期時間標準
日期的標準就不多說了 -- 公元紀年

是為紀念猶太人耶穌(基督)的誕生。他誕生的那一年為西元1年,誕生前的年份稱為「西元前n年」


簡單來說,時間的標準就是以什麼時間為起點開始計時。對年份來說,舉例來說,如果不使用公元紀年法,估計全世界交流起來就困難重重了(新中國54年,估計很把很多老外整暈)

時間標準其實挺多的。

原子時· 協調世界時(UTC) · 格林尼治平時(GMT) · 地球時(TT) · 力學時(DT)

 

在程式開發中甚至日常生活中,比較常見的就是UTC和GMT了。

UTC是協調世界時(Universal Time Coordinated)英文縮寫,是由國際無線電諮詢委員會規定和推薦,並由國際時間局(BIH)負責保持的以秒為基礎的時間標度。 UTC相當於本初子午線(即經度0度)上的平均太陽時,過去曾用格林威治平均時(GMT)來表示.北京時間比UTC時間早8小時,以1999年1月1日0000UTC為例,UTC時間是零點,北京時間為1999年1月1日早上8點整。

GMT(Greenwich Mean Time)是格林尼治平時:
由於地球軌道並非圓形,其運行速度又隨著地球與太陽的距離改變而出現變化,因此視太陽時欠缺均勻性。視太陽日的長度同時也受到地球自轉軸相對軌道面傾斜度的影響。為著要修正上述的不均勻性,天文學家計算地球非圓形軌跡與極軸傾斜對視太陽時的效應。平太陽時就是指修訂後的視太陽時。在格林尼治子午線上的平太陽時稱為世界時(UT0),又叫格林尼治平時(GMT)。

為了確保協調世界時與世界時(UT1)相差不會超過0.9秒,有需要時便會在協調世界時內加上正或負閏秒。因此協調世界時與國際原子時(TAI)之間會出現若干整數秒的差異。位於巴黎的國際地球自轉事務中央局(IERS)負責決定何時加入閏秒。

 


兩者的關係:

UTC = GMT +/- 0.9 s
因此 UTC 間中需要進行 "閏秒" 以控制兩者相差。

 


以上介紹可以統統不看, 一言之,UTC和 GMT就是世界標準時間, 兩者的差距很小。

 

 

日期時間表示標準

日期和時間的計算標準有了。但表示上卻也可以千差萬異。

2013/08/16

08/16/2013

13/08/16

.。 。 。 。 。

於是,國際標準化組織ISO 出來了,制定了一個8601系列 《資料儲存和交換形式·資訊交換·日期和時間的表示方法》。

目前是第三版ISO8601:2004以取代第一版ISO8601:1988與第二版ISO8601:2000。

主要的部分列一下:

1. 日期表示法


年為4位數,月為2位數,月中的日為2位數,例如,日期(2013年8月16日)可表示為2013-08-16,或20130816。

2. 日曆星期和日表示法

可以用2位數表示本年內第幾個日曆星期;

每個日曆星期從星期一開始,星期日為第7天

3. 時間表示方法


小時、分和秒都用2位數表示,對UTC時間最後加上一個大寫字母Z,其他時區用實際時間加時差表示。如UTC時間下午2點30分5秒錶示為14:30:05Z或143005Z,當時的北京時間表示為22:30:05+08:00或223005+0800,也可以簡化成223005+08。

4. 日期和時間組合表示法

合併表示時,要在時間前面加一大寫字母T,如要表示北京時間2004年5月3日下午5點30分8秒,可以寫成2004-05 -03T17:30:08+08:00或20040503T173008+08。

 

 

需要特別提出的是:

星期天在西方是作為一個星期的第一天

在中國則是最後一天。

也就是所ISO標準和中國的習慣是一致的。但目前許多軟體、語言什麼的都是國外開發的,時間上還是延續了自己的習慣。

 

 

Javascript 中的日期時間

 

方法 描述 FF IE
Date() 傳回當日的日期和時間。 1 3
getDate() 從 Date 物件傳回一個月中的某一天 (1 ~ 31)。 1 3
getDay() 從 Date 物件傳回一週中的某一天 (0 ~ 6)。 1 3
getMonth() 從 Date 物件傳回月份 (0 ~ 11)。 1 3
getFullYear() 從 Date 物件以四位數字傳回年份。 1 4
getYear() 請使用 getFullYear() 方法代替。 1 3
getHours() 傳回 Date 物件的小時 (0 ~ 23)。 1 3
getMinutes() 傳回 Date 物件的分鐘 (0 ~ 59)。 1 3
getSeconds() 傳回 Date 物件的秒數 (0 ~ 59)。 1 3
getMilliseconds() 傳回 Date 物件的毫秒(0 ~ 999)。 1 4
getTime() 傳回 1970 年 1 月 1 日至今的毫秒數。 1 3
getTimezoneOffset() 傳回本地時間與格林威治標準時間 (GMT) 的分鐘差。 1 3
getUTCDate() 根據世界時從 Date 物件返回月中的一天 (1 ~ 31)。 1 4
getUTCDay() 根據世界時從 Date 物件返回週中的一天 (0 ~ 6)。 1 4
getUTCMonth() 根據世界時從 Date 物件傳回月份 (0 ~ 11)。 1 4
getUTCFullYear() 根據世界時從 Date 物件傳回四位數的年份。 1 4
getUTCHours() 根據世界時傳回 Date 物件的小時 (0 ~ 23)。 1 4
getUTCMinutes() 根據世界時傳回 Date 物件的分鐘 (0 ~ 59)。 1 4
getUTCSeconds() 根據世界時傳回 Date 物件的秒鐘 (0 ~ 59)。 1 4
getUTCMilliseconds() 根據世界時傳回 Date 物件的毫秒(0 ~ 999)。 1 4
parse() 傳回1970年1月1日午夜到指定日期(字串)的毫秒數。 1 3
setDate() 設定 Date 物件中月的某一天 (1 ~ 31)。 1 3
setMonth() 設定 Date 物件中月份 (0 ~ 11)。 1 3
setFullYear() 設定 Date 物件中的年份(四位數字)。 1 4
setYear() 請使用 setFullYear() 方法代替。 1 3
setHours() 設定 Date 物件中的小時 (0 ~ 23)。 1 3
setMinutes() 設定 Date 物件中的分鐘 (0 ~ 59)。 1 3
setSeconds() 設定 Date 物件中的秒鐘 (0 ~ 59)。 1 3
setMilliseconds() 設定 Date 物件中的毫秒 (0 ~ 999)。 1 4
setTime() 以毫秒設定 Date 物件。 1 3
setUTCDate() 依照世界時設定 Date 物件中月份的一天 (1 ~ 31)。 1 4
setUTCMonth() 根據世界時設定 Date 物件中的月份 (0 ~ 11)。 1 4
setUTCFullYear() 根據世界時設定 Date 物件中的年份(四位數字)。 1 4
setUTCHours() 依照世界時設定 Date 物件中的小時 (0 ~ 23)。 1 4
setUTCMinutes() 根據世界時設定 Date 物件中的分鐘 (0 ~ 59)。 1 4
setUTCSeconds() 根據世界時設定 Date 物件中的秒鐘 (0 ~ 59)。 1 4
setUTCMilliseconds() 根據世界時設定 Date 物件中的毫秒 (0 ~ 999)。 1 4
toSource() 傳回該物件的原始碼。 1 -
toString() 把 Date 物件轉換為字串。 1 4
toTimeString() 把 Date 物件的時間部分轉換為字串。 1 4
toDateString() 把 Date 物件的日期部分轉換為字串。 1 4
toGMTString() 請使用 toUTCString() 方法取代。 1 3
toUTCString() 根據世界時,把 Date 物件轉換為字串。 1 4
toLocaleString() 依照本地時間格式,把 Date 物件轉換為字串。 1 3
toLocaleTimeString() 依照本地時間格式,把 Date 物件的時間部分轉換為字串。 1 3
toLocaleDateString() 根據本地時間格式,把 Date 物件的日期部分轉換為字串。 1 3
UTC() 根據世界時傳回 1997 年 1 月 1 日 到指定日期的毫秒數。 1 3
valueOf() 傳回 Date 物件的原始值。  

 

以上也可以統統不看, 需要特別說的是:

Javascript 把 星期日 作為一週的開始。 使用getDay() 這個方法時就得小心了。

getDay() 回傳 0-6 之間的數值, 2013/08/18  是星期天, 回傳值是 0

Add by oscar999--> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
<HTML> 
<HEAD> 
<TITLE> New Document </TITLE> 
<META NAME="Author" CONTENT="oscar999"> 
<script> 
var date = new Date("2013/08/18"); 
alert(date.getDay()); 
</script> 
</HEAD> 
  
<BODY>
登入後複製


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板