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或者本地時間。