1

重複の可能性:
Javascript での ISO 8601 日付の解析のヘルプ

これは非常に単純であるべきだと思いますが、驚くほど面倒でした。

WEB APIselectedから ajax 経由でオブジェクトを受け取り、そのプロパティの 1 つが InspectionDate のような日時文字列です。2012-05-14T00:00:00

JavaScriptでは、次のコードを使用して正しい日付オブジェクトを取得します

selected.JsInspectionDate = new Date(selected.InspectionDate);

しかし、JsInspectionDate ショー

2012/05/14 00:00 in firefox, 
2012/05/13 20:00 in chrome and 
NAN in IE9

為に2012-05-14T00:00:00.

この問題が発生する理由を誰か教えてもらえますか? そして、この問題を解決するにはどうすればよいですか?すべてのブラウザでFirefoxのように表示したいだけです。

4

3 に答える 3

2

これを行う:

new Date(selected.InspectionDate + "Z")

根拠: 日付はISO 8601形式です。のようなタイムゾーン指定子"Z"(UTC の非常に短いもの) が機能します。

ノート!IE は ISO 8601 の日付を認識しない場合があります。すべての賭けはオフです。この場合、datejsを使用することをお勧めします。

于 2012-08-22T17:42:35.100 に答える
1

アップデート:

最初に提案されたように、date.jsを参照した後、次のことを試みました。

selected.JsInspectionDate = Date.parse(selected.InspectionDate);

動作しているように見えましたが、JSON 日付文字列は2012-05-14T00:00:00.0539date.js も処理できない形式を持つ可能性があるため、後で十分ではないことがわかりました。

だから私の解決策は

function dateParse(str) {
    var arr = str.split('.');
    return Date.parse(arr[0]);
}
...
selected.JsInspectionDate = dateParse(selected.InspectionDate);
于 2012-08-22T19:12:48.990 に答える