【发布时间】:2010-12-20 01:20:19
【问题描述】:
我的 JSON 字符串包含一个返回此类值的日期字段:
"2009-04-04T22:55:16.0000000-04:00"
我对只解析日期而不是时间特别感兴趣。我尝试使用 reviver 函数,但有趣的是 reviver 函数从未被调用! (在 Firefox 上试过)
这是我的代码:
var Site = {
.....
dateReviver: function(key, value) {
var a;
if (typeof value === 'string') {
a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
if (a) {
return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
+a[5], +a[6]));
}
}
return value;
},
loadArticle: function(id) {
....
proxy.getArticle(id, function(response) {
var data = JSON.parse(response.result, Site.dateReviver);
....
});
}
};
loadArticle 中的 JSON.parse 从不调用 dateReviver。
我投资了一整天,但没有运气!有人可以帮我吗?
【问题讨论】:
标签: javascript json debugging date-parsing reviver-function