在我的angular js应用程序中,我从Web服务获得成功响应,我正在尝试在控制台中显示响应数据
console.log(JSON.stringify(data))
但问题在于我的成功响应数据有一个日期元素.i已经打印了JSON.stringify(data)
输出之前和之后:
之前:2012年8月14日星期二00:00:00 GMT + 0530(印度标准时间)
在JSON.stringify(数据)之后:" 2012-08-13T18:30:00.000Z"
之后显示8月13日而不是8月14日。
请告诉我如何解决这个问题,我想在JSON.stringify(data)
之后获得14点。
答案 0 :(得分:3)
JSON.stringify
使用toJSON
方法(如果已定义)来序列化对象。 Date
个对象确实在prototype
中定义了该方法,并且它与Date.prototype.toISOString
几乎相同。
所以一个解决方案是重新定义Date.prototype.toJSON
:我并不是真的推荐它,因为ISO格式是将日期作为字符串传输的常规方法,但它可以完成。
此示例使用moment.js:
Date.prototype.toJSON = function() {
return moment(this).format("YYYY-MM-DD HH:mm:ss");
};
最后,问问自己:为什么要使用JSON.stringify
在控制台上显示日期? Date
有很多方法可以显示日期(toString
,toUTCString
,toLocaleString
,toISOString
,...并非所有浏览器都支持这些方法,是公平的),如果他们不满足您的需求,那么有很多日期库(如上面提到的moment.js)可以帮助您。