var timeStr = '2018-11-11 00:00:00'; var time = new Date(timeStr); // error: Invalid Date ...
在safari瀏覽器下,time爲Invalid Date, 致使後面代碼執行錯誤;es6
其餘瀏覽器諸如chrome,firfox,ie運行正常,time爲:Sun Nov 11 2018 00:00:00 GMT+0800 (中國標準時間)。chrome
在safari瀏覽器下,new Date() 沒法識別像 YYYY-MM-DD HH:mm:ss、YYYY.MM.DD HH:mm:ss這樣的格式,只能識別YYYY/MM/DD HH:mm:ss、YYYY-MM-DDTHH:mm:ss這樣的格式,可是chrome,firfox,ie都作了很好的拓展,都能識別。瀏覽器
new Date('2018-11-11 00:00:00') /* chrome: Sun Nov 11 2018 00:00:00 GMT+0800 (中國標準時間) (正常) safari: Invalid Date */ new Date('2018.11.11 00:00:00') /* chrome: 正常 safari: Invalid Date */ new Date('2018/11/11 00:00:00') /* chrome: 正常 safari: 正常 */ new Date('2018-11-11T00:00:00') /* chrome: 正常 safari: 正常 */
var timeStr = '2018-11-11 00:00:00'; var date = new Date(Date.parse(timeStr.replace(/-/g, '/')));
// es6環境 class UnitDate { constructor (date) { let { userAgent } = window.navigator; if (userAgent.includes('Safari')) { if (typeof date === 'string') { date = date.replace(/-/g, '/'); return new Date(date); } return new Date(date); } return new Date(date); } } var date = new UnitDate('2018-11-11 00:00:00'); //正常 var date_2 = new UnitDate('2018.11.11 00:00:00'); //正常 ...