JavaScript Date parse()
Date 的 parse() 方法用來將日期時間字串轉成一個數字,這數字表示從 1970-01-01 00:00:00 UTC (格林威治標準時間) 開始累計到現在的毫秒數 (milliseconds)。
語法:
Date.parse(dateString)
時間日期字串格式要符合 RFC2822 或 ISO 8601 date 標準,如果是無效的格式會返回 NaN
。
parse() 底層其實是執行
new Date(dateString)
。用法:
YYYY-MM-DD
// 1462838400000
Date.parse('2016-05-10');
特別注意在有些瀏覽器,如果你月或日只有個位數,但沒有補 0 可能會發生錯誤,例如
1
需要寫成 01
。YYYY-MM
(DD 日預設為 1)
// 1462060800000
Date.parse('2016-05');
YYYY
(MM-DD 月日預設為 1)
// 1451606400000
Date.parse('2016');
YYYY-MM-DDTHH:MM:SS
(T
用來分隔開日期和時間)
// 1480048200000
Date.parse('2016-11-25T12:30:00');
YYYY-MM-DDTHH:MM:SSZ
(結尾 Z
表示是 UTC +00:00 時間)
// 1480077000000
Date.parse('2016-11-25T12:30:00Z');
UTC (Coordinated Universal Time, 世界協調時間) 跟 GMT (Greenwich Mean Time, 格林威治標準時間) 是一樣的。
YYYY-MM-DDTHH:MM:SS+HH:mm
, YYYY-MM-DDTHH:MM:SS-HH:mm
(結尾 +-
HH:mm
用來指定時區,即和 UTC 的時差 offset)
// 1480048200000
Date.parse('2016-11-25T12:30:00+08:00'); // 台灣時區+8
若沒指定 offset,預設是用當地時間 (local timezone) 做 parse。
MM/DD/YYYY
// 1462809600000
Date.parse('05/10/2016');
MMM DD YYYY
, DD MMM YYYY
// 1478707200000
Date.parse('Nov 10 2016');
// 1478707200000
Date.parse('10 Nov 2016');
月份也可以寫全名,而且月份大小寫沒差,逗點會被忽略:
// 1478707200000
Date.parse('NovemBER, 10, 2016');
或使用 JavaScript 完整的日期時間文字格式:
// 1481378970000
Date.parse('Sat Dec 10 2016 22:09:30 GMT+0800 (CST)');
// 1481378970000
Date.parse('Sat Dec 10 2016 22:09:30 GMT+0800');