1

我正在使用带有替换器(第二个参数)的 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;
        });

我的对象“数据”中有有效的日期时间值。但是,当使用此值执行替换函数时,日期时间值会自动转换为字符串,因此 jQuery.type(value) = "string" 而不是 "date" 了。

在调用 stringify 之前,我可以简单地替换值对象中的所有日期时间值,但我不想修改原始数据。

这是替换函数的行为方式还是 IE 的一个奇怪特性(我使用的是 IE9)?我该如何解决这个问题?

4

1 回答 1

5

尝试

Date.prototype.toJSON = function() {
     return "Date(" + this.getTime() + ")";
};

没有更换器。

于 2012-06-10T12:23:19.740 回答