我从网络服务中获取日期,它们看起来像这样:
/Date(1310187160270+1200)/
我将如何将其转换为 javascript 中的日期对象?
我用谷歌搜索了一下,找不到一个像样的答案——这可能部分是因为我不确定这种类型的日期对象叫什么——所以如果有人也能阐明这一点,那将不胜感激。
我从网络服务中获取日期,它们看起来像这样:
/Date(1310187160270+1200)/
我将如何将其转换为 javascript 中的日期对象?
我用谷歌搜索了一下,找不到一个像样的答案——这可能部分是因为我不确定这种类型的日期对象叫什么——所以如果有人也能阐明这一点,那将不胜感激。
var date = new Date(1310187160270+1200);
console.log(date)
返回
2011 年 7 月 9 日星期六 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, 08 Jul 2011 16:52:40 GMT
。