JavaScript Date parse()

Date 的 parse() 方法用來將日期時間字串轉成一個數字,這數字表示從 1970-01-01 00:00:00 UTC (格林威治標準時間) 開始累計到現在的毫秒數 (milliseconds)。

語法:

Date.parse(dateString)

時間日期字串格式要符合 RFC2822ISO 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');