Javascript New Date()返回无效日期

时间:2017-10-26 21:00:37

标签: javascript date

我有一个日期字符串格式的数组:" 2017年7月24日"。
当我使用new Date("24-Jul-2017");时 它返回一天抵消的日期 2017-07-23T22:00:00.000Z

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

2 个答案:

答案 0 :(得分:3)

假设浏览器位于2017年7月24日开始时UTC偏移量为+2的时区,则其行为与文档一致。

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

  

如果日期字符串为“2014年3月7日”,则parse()会假定为本地时区,但如果采用ISO格式(如“2014-03-07”),则会假定UTC时区(ES5和ECMAScript) 2015年)。因此,使用这些字符串生成的Date对象可能代表不同的时刻,具体取决于ECMAScript支持的版本,除非系统设置了UTC的本地时区。这意味着两个看似等效的日期字符串可能会导致两个不同的值,具体取决于要转换的字符串的格式。

所以它在2017年7月24日午夜在当地时区提供

听起来我觉得你最好使用Moment.js或类似的东西来更清楚地控制解析/格式化。

答案 1 :(得分:0)

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

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