我正在使用带有replacer(第二个参数)的javascript JSON.stringify函数来以某种方式格式化日期值:
var s = JSON.stringify(data, function (key, value) {
if (key === "") return value;
if (jQuery.type(value) === "date") return "Date(" + value.getTime() + ")";
return value;
});
我的对象“data”中有有效的日期时间值。但是,当使用此值执行replacer函数时,datetime值会自动转换为字符串,因此jQuery.type(value)=“string”而不是“date”。
在调用stringify之前,我可以简单地替换value-object中的所有datetime值,但我不想修改原始数据。
这是替换器功能应该如何表现,还是这是IE的一个奇怪功能(我使用的是IE9)?我怎么能解决这个问题?
答案 0 :(得分:4)
尝试
Date.prototype.toJSON = function() {
return "Date(" + this.getTime() + ")";
};
没有替换者。