Javascript New Date()返回无效日期

Javascript New Date() returns invalid date

本问题已经有最佳答案,请猛点这里访问。

我有一个日期字符串数组,格式为:"2017年7月24日"。当我使用new Date("24-Jul-2017");时它返回带有一天偏移量的日期。江户十一〔一〕号

尝试了不同的格式,但无法获得正确的日期。


假设浏览器在2017年7月24日开始时处于UTC偏移量为+2的时区,它的行为将如文档所示。

Date构造函数被记录为行为类似于Date.parse,然后包括此文档以及多个不使用接受字符串的构造函数或parse方法的警告:

Given a date string of"March 7, 2014", parse() assumes a local time zone, but given an ISO format such as"2014-03-07" it will assume a time zone of UTC (ES5 and ECMAScript 2015). Therefore Date objects produced using those strings may represent different moments in time depending on the version of ECMAScript supported unless the system is set with a local time zone of UTC. This means that two date strings that appear equivalent may result in two different values depending on the format of the string that is being converted.

因此,它将在当地时区为您提供2017年7月24日午夜的服务。

在我看来,您最好使用moment.js或类似的工具,以便更清楚地控制解析/格式化。


1
new Date(Date.UTC(year, month, day, hour, minute, second))

尝试此格式(UTC将是您的日期的时区)