我有一个日期字符串格式的数组:" 2017年7月24日"。
当我使用new Date("24-Jul-2017");
时
它返回一天抵消的日期
2017-07-23T22:00:00.000Z
尝试了不同的格式但无法获得正确的日期。
答案 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将是您日期的时区)