var date1 = new Date("Dec 29, 2016");
var date2 = new Date("2016-12-29");
console.log(date1);
//This prints "Thu Dec 29 2016 00:00:00 GMT-0500 (EST)"
console.log(date2);
//This prints "Wed Dec 28 2016 19:00:00 GMT-0500 (EST)"
console.log(date1 == date2);
//Prints false
如何在上面的代码中正确解析日期,以便将两个日期视为相等。
看起来我没有按照我想要的方式正确创建date2对象。我该如何纠正?
答案 0 :(得分:2)
以下是日期文档中的解释:
注意:由于浏览器差异和不一致,强烈建议不要使用Date构造函数(和Date.parse,它们是等效的)解析日期字符串。对RFC 2822格式字符串的支持仅限于惯例。 支持ISO 8601格式的不同之处在于,仅限日期的字符串(例如" 1970-01-01")被视为UTC,而不是本地。
解析正确进行,但在第二个示例中,时间被视为UTC,然后在当地时区12月28日转为。
更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date