从webservice解析日期

时间:2012-06-13 22:40:44

标签: javascript jquery json web-services datetime

我从网络服务中获取日期,它们看起来像这样:

/Date(1310187160270+1200)/

我如何在javascript中将其转换为日期对象?

我已经google了一下,找不到合适的答案 - 这可能部分归因于我不确定这种类型的日期对象被调用的事实 - 所以如果有人可以阐明这个也值得赞赏。

2 个答案:

答案 0 :(得分:8)

var date = new Date(1310187160270+1200); 
console.log(date)

返回

Sat Jul 09 2011 06:52:41 GMT + 0200(南非标准时间)

如果你需要在问题中删除它:

var returnVariable = "/Date(1346713200000+0100)/";
var d = new Date(parseFloat(returnVariable.replace("/Date(", "").replace(")/", ""))); 

答案 1 :(得分:4)

由于上一个答案没有处理时区偏移,我会投入我的版本:

function fromDateString(str) {
    var res = str.match(/\/Date\((\d+)(?:([+-])(\d\d)(\d\d))?\)\//);
    if (res == null)
        return new Date(NaN); // or something that indicates it was not a DateString
    var time = parseInt(res[1], 10);
    if (res[2] && res[3] && res[4]) {
        var dir = res[2] == "+" ? -1 : 1,
            h = parseInt(res[3], 10),
            m = parseInt(res[4], 10);
        time += dir * (h*60+m) * 60000;
    }
    return new Date(time);
}

正确的结果是Fri Jul 08 2011 18:52:40 GMT+0200Fri, 08 Jul 2011 16:52:40 GMT