var time = new Date('2014-07-03'); //Thu Jul 03 2014 08:00:00 GMT 0800 (中國標準時間)
Date.parse(time); //1404345600000
var time = new Date('2014-7-3'); //Thu Jul 03 2014 00:00:00 GMT 0800 (中國標準時間)
Date.parse(time); //1404316800000
補全0之後咋就多了8小時呢?
黄舟2017-05-19 10:20:39
根據 ECMA-262 ed 3,對時間的解析可能有不同處理方式。
在 ES5 中,對 ISO 8601 格式的字串,如果沒有指定時區,則解析為 UTC,對非 ISO 8601 的處理沒有統一行為。
在 ES2015 中,對沒有指定時區的字串解析為當地時間(根據系統時間)。
如果你希望把所有這種形式的字串都處理為當地時間,可以自己寫個函數:
function parseISOLocal (s) {
var b = s.split(/\D/);
return new Date(b[0], b[1]-1, b[2]);
}
某草草2017-05-19 10:20:39
前段時間也看到這個問題。
如果將日期格式換成“2014/07/02”,則正常換算成0點。
參考:軒楓閣 http://www.xuanfengge.com/js-...