javascript - JS字串轉時間戳相差8小時問題
怪我咯
怪我咯 2017-05-19 10:18:39
0
3
733

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小時呢?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(3)
黄舟

根據 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]);
}
某草草

前段時間也看到這個問題。

如果將​​日期格式換成“2014/07/02”,則正常換算成0點。

參考:軒楓閣 http://www.xuanfengge.com/js-...

小葫芦

在火狐下是正常的

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!