从webservice解析日期
我从Web服务中获取日期,它们看起来像这样:
/Date(1310187160270+1200)/
我如何在javascript中将其转换为日期对象?
我已经google了一下,找不到一个合适的答案 – 这可能部分是由于我不确定这种类型的日期对象被调用的事实 – 所以如果有人能够阐明这一点,那么不胜感激。
var date = new Date(1310187160270+1200); console.log(date)
回报
周六7月09 2011 06:52:41 GMT + 0200(南非标准时间)
如果你需要在问题中删除它:
var returnVariable = "/Date(1346713200000+0100)/"; var d = new Date(parseFloat(returnVariable.replace("/Date(", "").replace(")/", "")));
由于上一个答案不处理时区偏移,我会抛出我的版本:
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+0200
,或Fri Jul 08 2011 18:52:40 GMT+0200
Fri, 08 Jul 2011 16:52:40 GMT
。