1

Web API用のMVC 3 Webアプリケーションがあり、コントローラーはjsonを発行します。json の結果では、日付が自動的にシリアル化されていることがわかります

なので

{
Flag: "U"
EventId: "168ef1d4-60ca-4fa1-b03b-8c3207650347"
EventTitle: "test event 11"
DateTimeStart: "/Date(1369217469310)/"
IsCustomEvent: true
Location: null
}

javascript で DateTimeStart を人間が読める形式に変換し、このコードを使用する必要があります

var 日付 = 新しい日付 (1369217469310); アラート(日付);

結果のデータは次のようになります

2013 年 5 月 22 日水曜日 12:11:09 GMT+0200 (CEST)

これは、アプリケーションに保存されている日付 22/05/2013 11:11:09 の 1 時間前です。

問題が発生している可能性がある場所とその修正方法を知りたいです。

  • +1 UCT である CEST を使用してデフォルトで日付をシリアル化する .Net ですか。この場合、UCT を 0 に設定する方法はありますか?
  • JavaScriptを使用して日付を変換するときに問題がありますか?

どうやって修正するか教えてください、ありがとう!

4

1 に答える 1

1

サーバー側についてアドバイスするには十分な情報がありません。一般に、サーバー側の問題の原因は、アプリケーションで設定された CultureInfo である可能性があります。ブラウザに送信する前に、すべての日時を UTC に変換することを検討してください。DateTime.ToUniversalTime() メソッドを確認してください。

クライアント側では、地域時間と UTC の間のオフセットを修正することもできます。これを行う組み込み関数はありませんが、実行するのは非常に簡単な操作です。以下のコードを確認してください。

var date = new Date();
var dateWithOffset = date.getTime() + date.getTimezoneOffset() * 60000;
于 2013-05-22T10:38:27.810 に答える