1. 程式人生 > >Javascript中的Date.now() 方法與Date.UTC() 方法 ,Date.parse() 方法

Javascript中的Date.now() 方法與Date.UTC() 方法 ,Date.parse() 方法

1. Date.now() 方法返回自1970年1月1日 00:00:00 UTC到當前時間的毫秒數。

語法:無引數

var timeInMs = Date.now();

描述:

now()方法返回自1970年1月1日 00:00:00 UTC到當前時間的毫秒數,型別為Number。

因為 now() 是Date的一個靜態函式,所以必須以 Date.now() 的形式來使用。

2. Date.UTC() 方法接受的引數同日期建構函式接受最多引數時一樣,返回從1970-1-1 00:00:00 UTC到指定日期的的毫秒數。

語法:

Date.UTC(year,month[,date[,hrs[,min[,sec[,ms]]]]]) 

引數:

year
1900 年後的某一年份。
month
0 到 11 之間的一個整數,表示月份。
date
1 到 31 之間的一個整數,表示某月當中的第幾天。
hrs
0 到 23 之間的一個整數,表示小時。
min
0 到 59 之間的一個整數,表示分鐘。
sec
0 到 59 之間的一個整數,表示秒。
ms
0 到 999 之間的一個整數,表示毫秒

描述:

UTC 方法接受以逗號隔開的日期引數,返回1970-1-1 00:00:00 UTC到指定的日期之間的毫秒數。

你應該指定一個完整格式的年份,如 1998。如果年份被指定為 0 到 99 之間,則該方法會將年份轉換為 20 世紀的一個年份(即 1990 + year),例如,指定為 95, 則年份為 1995。

UTC 方法與 Date 有兩點不同:

Date.UTC 方法使用協調世界時代替本地時間。
Date.UTC 方法返回一個時間數值,而不是一個日期物件。
如果有一個指定的引數超出其合理範圍,則 UTC 方法會通過更新其他引數直到該引數在合理範圍內。例如,為月份指定 15,則年份將會加 1,然後月份將會使用 3。

由於 UTC 是 Date(日期物件)的一個靜態方法,所以應該在 Date 上直接呼叫,就像 Date.UTC(),而不要把它作為建立的日期物件的方法。

例子:使用 Date.UTC

下面的語句使用 UTC 時間代替本地時間建立了一個日期物件。

var utcDate = new Date(Date.UTC(96, 11, 1, 0, 0, 0));

 3. Date.parse() 

Date.parse() 方法解析一個表示某個日期的字串,並返回從1970-1-1 00:00:00 UTC 到該日期物件(該日期物件的UTC時間)的毫秒數,如果該字串無法識別,或者一些情況下,包含了不合法的日期數值(如:2015-02-31),則返回值為NaN。

不推薦在ES5之前使用Date.parse方法,因為字串的解析完全取決於實現。直到至今,不同宿主在如何解析日期字串上仍存在許多差異,因此最好還是手動解析日期字串(在需要適應不同格式時庫能起到很大幫助)。

語法

顯式呼叫:

Date.parse(dateString)

隱式呼叫:

new Date(dateString)

引數

dateString

一個符合 RFC2822 或 ISO 8601 日期格式的字串(其他格式也許也支援,但結果可能與預期不符)。

返回值

一個表示從1970-1-1 00:00:00 UTC到給定日期字串所表示時間的毫秒數的數值。如果引數不能解析為一個有效的日期,則返回NaN

描述

parse 方法接受一個日期字串(例如 "Dec 25, 1995"),並返回從1970-1-1 00:00:00 UTC到該日期字串所表示日期的毫秒數。該方法在基於字串值設定日期值時很有用,例如結合使用setTime() 方法和 Date() 建構函式。

parse 方法接受一個表示時間的字串,返回相應的時間值。該方法可以接受符合 RFC2822 / IETF 日期語法 (RFC2822 Section 3.3) 的字串,如 "Mon, 25 Dec 1995 13:30:00 GMT"。該方法能夠理解美國大陸時區的縮寫,但是為了更通用,應該使用時區偏移,如 "Mon, 25 Dec 1995 13:30:00 +0430" (格林威治的子午線向東偏移4小時30分鐘)。如果沒有指定時區,預設使用本地時區。

GMT 和 UTC 被看作相等。 如果 RFC2822 Section 3.3 格式中不包含時區資訊時,會以本地時區來解析日期字串。

由於在解析日期字串時存在偏差會導致結果不一致,因此推薦始終手動解析日期字串,特別是不同的ECMAScript實現會把諸如“2015-10-12 12:00:00”的字串解析為NaN,UTC或者本地時間。