在JavaScript中将日期转换为JSON的问题

一旦Date对象被创建为,

var oDate = new Date(2014,01,21,23,00,00);

它返回2014年2月21日星期五23:00:00 GMT + 0530(印度标准时间)。 但是,当我尝试将其转换为JSON。

oDate.toJSON() // "2014-02-21T17:30:00.000Z"

为什么小时和分钟变化? 小时数应为23,分钟数应为00。


为什么小时和分钟变化?

因为它不再以控制台中显示的印度标准时间表示,但UTC( Z ulu Time,如ISO 8601字符串中所示)。

小时数应为23,分钟数应为00。

不可以。如果你想用UTC创建一个23:00的时间,那么你应该使用

var oDate = new Date(Date.UTC(2014,01,21,23,00,00));

这实际上是按照预期工作并序列化为UTC,因为当您加载JSON对象时,您将再次获得正确的Date。 使用toJSON()时,时间以UTC存储。

指定者:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toJSON

测试代码:

var oDate = (new Date()).toJSON();
var pDate = new Date(oDate);

console.log("Serialized date object: " + oDate);
console.log("Actual date object: " + pDate);

只是为了记录,请记住,“2014-02-21T17:30:00.000Z”中的最后一个“Z”表示时间确实是UTC

了解更多信息 :-

http://en.wikipedia.org/wiki/ISO_8601

以供参考 :-

如何格式化Microsoft JSON日期?

链接地址: http://www.djcxy.com/p/77507.html

上一篇: Issue with converting Date to JSON in javascript

下一篇: convert time format in db to jquery countdown format