4

Webサービスから日付を取得していますが、次のようになっています。

/Date(1310187160270+1200)/

これをjavascriptの日付オブジェクトに変換するにはどうすればよいですか?

私は少しググってみましたが、まともな答えを見つけることができません-これは、このタイプの日付オブジェクトが何と呼ばれているのか正確にわからないという事実が原因の可能性があります-誰かがそれにも光を当てることができれば、いただければ幸いです。

4

2 に答える 2

7
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(")/", ""))); 
于 2012-06-13T22:44:56.783 に答える
5

前の回答はタイムゾーンオフセットを処理しないため、自分のバージョンを投入します。

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です。

于 2012-11-30T00:58:06.590 に答える