本文介绍了将.NET日期格式转换为JavaScript日期的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
对于序列化日期属性,我返回了以下json:
I have the following json coming back for a serialized date property:
/日期(1392508800000 + 0000)/
/Date(1392508800000+0000)/
任何人都可以告诉我如何获取javascript日期吗?
Can anyone tell me how I can get a javascript date out of this?
推荐答案
if (!Date.parseJSON) {
Date.parseJSON = function (date) {
if (!date) return "";
return new Date(parseFloat(date.replace(/^\/Date\((\d+)\)\/$/, "$1")));
};
}
然后
var myVar = Date.parseJSON("/Date(1392508800000+0000)/")
修改
我创建了一个函数,该函数将循环遍历返回的JSON对象并修复任何日期.(不幸的是,它确实依赖于jQuery),但是在这里是:
I created a function that will recursively cycle through a returned JSON object and fix any dates. (Unfortunately it does have a dependency on jQuery), but here it is:
// Looks through the entire object and fix any date string matching /Date(....)/
function fixJsonDate(obj) {
var o;
if ($.type(obj) === "object") {
o = $.extend({}, obj);
} else if ($.type(obj) === "array") {
o = $.extend([], obj);
} else return obj;
$.each(obj, function (k, v) {
if ($.type(v) === "object" || $.type(v) === "array") {
o[k] = fixJsonDate(v);
} else {
if($.type(v) === "string" && v.match(/^\/Date\(\d+\)\/$/)) {
o[k] = Date.parseJSON(v);
}
// else don't touch it
}
});
return o;
}
然后您可以像这样使用它:
And then you use it like this:
// get the JSON string
var json = JSON.parse(jsonString);
json = fixJsonDate(json);
这篇关于将.NET日期格式转换为JavaScript日期的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!