2

例如,我有一个 JSON 日期:“/Date(1258529233000)/”

我得到下面的代码来将此 JSON 日期转换为字符串格式的 UTC 日期。

var s = "\\/Date(1258529233000)\\/";
 s = s.slice(7, 20);
 var n = parseInt(s);
 var d = new Date(n);
 alert(d.toString());

现在我需要获取当前的 UTC 日期和时间并将其转换为 JSON 日期格式。

然后在这两个日期之间做一个日期差异并获得分钟数差异。

有人可以帮我弄这个吗?

4

2 回答 2

3

javascript Date 对象都是UTC日期,直到您将它们转换为字符串。

Date.fromJsnMsec= function(jsn){
    jsn= jsn.match(/\d+/);
    return new Date(+jsn)
}

Date.prototype.toJsnMsec= function(){
    return '/Date('+this.getTime()+')/';
}

//test
var s= "\/Date(1258529233000)\/";
var D1= Date.fromJsnMsec(s);
var D2= new Date();
var diff= Math.abs(D1-D2)/60000;
var string= diff.toFixed(2)+' minutes between\n\t'+
D1.toUTCString()+' and\n\t'+D2.toUTCString()+'\n\n'+s+', '+D2.toJsnMsec();
alert(string)
于 2009-11-19T05:29:48.693 回答
1

在现代 JS 实现中做到这一点的最好方法很简单:

var now = (new Date()).toJSON();

这是在 EMCAScript 5.1 中标准化的。如果你需要支持旧版浏览器,你可以做一个长格式的版本(如果需要,包括类似json2.js的东西):

var now = JSON.parse(JSON.stringify({now: new Date()})).now;
于 2015-06-02T21:41:56.180 回答