この日付形式を変換する方法:/日付(1268524800000)/?

可能重複:
   JSONの日付をフォーマットするにはどうすればいいですか?

Javascriptを使用してJSON Webサービスを呼び出していますが、 StartDate フィールドは/Date(1268524800000)/ です。人間の読める形式に変換するにはどうしたらいいですか?

1
Webサービスのヘルプは、タイプが "type =" xs:dateTime ""であることを示しています
追加された 著者 TruMan1,
それはどのフォーマットですか?それはタイムスタンプですか? Webサービスにドキュメントがある場合は、そのドキュメントがそこにあるはずです
追加された 著者 Pekka 웃,
まあ、このフォーマットは間違いなくすぐには認識できません。私は、この多くの下降音は少し厳しいと思います。 (しかし、偉大な詐欺を見つけるために+1 @ネイサン)
追加された 著者 Pekka 웃,
それは1970年1月1日00:00:00 UTC以来のミリ秒のようです。表示される日付はSun 2010-03-14 00:00:00 UTCです。 (これは変換する方法の問題には答えませんが、JavaScript以外の言語を使用している場合は、それを行う方法の手掛かりとなります)もちろん、人間が読める形式に変換する方法の1つはその形式を読むために訓練すること。 8-)}
追加された 著者 Keith Thompson,
この質問と同じです。
追加された 著者 Nathan Baggs,

3 答え

これを試して:

var str = "/Date(1268524800000)/";
var num = parseInt(str.replace(/[^0-9]/g, ""));
var date = new Date(num);
alert(date);

Fiddle: http://jsfiddle.net/dS2hd/

8
追加された
実際にシステムからの日付を表すためではありません
追加された 著者 TruMan1,
数字が負の場合はどうなりますか?
追加された 著者 gilly3,
@ TruMan1 - 1969年以前の日付は、JavaScriptで負のシリアル番号を持ちます。
追加された 著者 gilly3,
ここで与えられた答えは正規表現の解析を必要としないので高速です: stackoverflow.com/a/2316066/163227
追加された 著者 Roy Tinker,
@ gilly3の前にその逆参照について知らなかった: /(\ - ?\ d +)/。test(str)?新しいDate(+ RegExp。$ 1):null;
追加された 著者 draeton,

正規表現を使用してミリ秒を取得し、Dateコンストラクタを使用してDateオブジェクトを取得することができます。日付オブジェクトを取得したら、それを使って何でもできます。

var ms = parseInt("/Date(1268524800000)/".match(/\((\d+)\)/)[1]);
var d = new Date(ms);
alert(d.toString());
1
追加された

eval()するか、数値を抽出して Date コンストラクタに渡すことができます。

if (/^\/Date\((-?\d+)\)\/$/.test(val)) {
    var serial = parseInt(RegExp.$1);
    val = new Date(serial);
}

/Date(1234567890000-0500)/ のような日付があるので、UTCオフセットを処理するためのより堅牢なプロシージャが呼び出される可能性があります。

0
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript