JavaScript Json.stringify 替换器将值转换为字符串

标签 javascript datetime json

我正在使用带有替换器(第二个参数)的 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)?我该如何解决这个问题?

最佳答案

尝试

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

没有替代品。

关于JavaScript Json.stringify 替换器将值转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10968622/

相关文章:

javascript - 进度条不在应有的位置

java - 如何从图像文件中读取日期和时间

python - 查看日期是否超过 30 天

java - 如何使用嵌套的 json 数组反序列化 json 对象

node.js - 解析 '...THtwvnO2F9FWD7HrMJoGZ' 附近时 JSON 输入意外结束

json - 如何在 Angular 5 中显示来自 Json Mapper 的数据?

javascript - 如何通过 Content-Security-Policy 允许 `javascript:void(0)` 在 HTML 元素属性中使用?

javascript - 如何使用 interact.js 将元素对齐到其他可拖动元素

javascript - 无法获取查询字符串数据

r - 如何在 R 中将山区标准时间 (MST) 转换为山区夏令时间 (MDT)