你好我在js中有一个带有字段日期的对象。我尝试在ajax请求中对其进行字符串化,但结果不一致。字符串化后,新对象提前一天。
更具体地说,这是我文件中的代码:
console.log(reservation.checkin);
console.log( JSON.stringify(reservation.checkin));
这就是结果:
Thu Jan 01 2015 00:00:00 GMT+0200 (EET)
"2014-12-31T22:00:00.000Z"
我做错了吗?它的输出应该是什么? Thx提前!
修改:从下面的答案看来,它似乎处于不同的时区。将此日期字符串化的正确方法是什么?
答案 0 :(得分:1)
它没有更改日期,只是在另一个时区(UTC / GMT)显示
GMT + 0200(EET)表示与UTC / GMT不同2小时
这样就可以了解你在结果中所看到的内容。
这取决于目的。如果你想在另一个API中发布它,它应该可以正常工作(假设,api使用时区标准),以防你想在gui中显示...为什么要使用json stringify ...
我不打算为你做所有数学,我建议你现在知道为什么,所以只是google:' javascript格式时区'或类似的东西。
答案 1 :(得分:0)
嗯,这是时区 - 你的约会时间是GMT +2:00, 并且在应用Stringify之后,您将获得UTC。 您可能想要检查Date方法.getTimezoneOffset()并可能更新日期
答案 2 :(得分:0)
JSON.stringify
正在调用Date.toJSON()
来转换日期。