JSON日期与时区偏移量无法正确转换为JavaScript日期
问题的原因是JSON日期带有时区偏移,在转换为JavaScript日期时无法正确处理时区偏移。解决方法是通过对JSON日期字符串进行处理,提取其中的时间戳并将其转换为JavaScript日期对象。但是这种方法忽略了时区偏移,因此除非偏移量为+0000,否则时间将不正确。下面是一个示例代码:
var date = "/Date(1381446000000+0100)/"; var d = new Date(parseFloat(date.replace("/Date(", "").replace(")/", "")));
上述代码可以将JSON日期转换为JavaScript日期对象,但是如果偏移量不是+0000,则时间将不正确。因此,需要对偏移量进行处理以获取正确的时间。根据测试,偏移量可以被视为以毫秒为单位的时间戳,该时间戳是相对于源位置的纪元时间的偏移量,并且偏移量的格式为HHmm。要将偏移量应用于时间戳以获取UTC时间,可以使用以下代码:
new Date(1381446000000 - 3.6e6).toISOString()
上述代码中的`1381446000000`是时间戳,`-3.6e6`是将偏移量`0100`转换为毫秒的值。执行上述代码后,将得到正确的UTC时间`2013-10-10T22:00:00.000Z`。