有人可以更新我对javascripts new Date('')解析的理解吗?
例如,为什么会这样:
var _date = new Date('2016-10-15');
等于
_date = Fri Oct 14 2016 17:00:00 GMT-0700 (US Mountain Standard Time) {}
并且不等于
Oct 15 2016
如果你使用moment.js:
var _testdate = moment('2016-10-15').toDate();
_testdate = Sat Oct 15 2016 00:00:00 GMT-0700 (US Mountain Standard Time) {}
答案 0 :(得分:3)
因为,与ISO 8601相反,日期构造函数和Date.parse将类似'2016-10-15'的日期形式视为UTC,而像moment.js这样的库与ISO 8601一致并将它们视为本地
因此,由于您的系统设置为UTC-0700,因此'2016-10-15'被视为2016-10-15T00:00:00Z(即UTC + 0000),即2016-10-14 17:00 :00在您当地的时区。