var time = new Date('2014-07-03'); //Thu Jul 03 2014 08:00:00 GMT 0800 (中國標(biāo)準(zhǔn)時間)
Date.parse(time); //1404345600000
var time = new Date('2014-7-3'); //Thu Jul 03 2014 00:00:00 GMT 0800 (中國標(biāo)準(zhǔn)時間)
Date.parse(time); //1404316800000
補(bǔ)全0之後咋就多了8小時呢?
走同樣的路,發(fā)現(xiàn)不同的人生
根據(jù) ECMA-262 ed 3,對時間的解析可能有不同處理方式。
在 ES5 中,對 ISO 8601 格式的字串,如果沒有指定時區(qū),則解析為 UTC,對非 ISO 8601 的處理沒有統(tǒng)一行為。
在 ES2015 中,對沒有指定時區(qū)的字串解析為當(dāng)?shù)貢r間(根據(jù)系統(tǒng)時間)。
如果你希望把所有這種形式的字串都處理為當(dāng)?shù)貢r間,可以自己寫個函數(shù):
function parseISOLocal (s) {
var b = s.split(/\D/);
return new Date(b[0], b[1]-1, b[2]);
}
前段時間也看到這個問題。
如果將??日期格式換成“2014/07/02”,則正常換算成0點。
參考:軒楓閣 http://www.xuanfengge.com/js-...