1

Microsoft ASP.NET MVC の JSON シリアライザーは、日時の値を のようなものに変換します"\/Date(1239018869048)\/"

クライアント側に、この形式を使用して日時ピッカーを表示するコンポーネントがあります。ただし、さまざまなソースから日時値を作成します。

  1. コントローラーのアクションによって返された JSON から
  2. Razor ページでレンダリングされたいくつかの値から

最初のソースは、必要な形式、つまり"\/Date(1239018869048)\/". ただし、2 番目のソースは日付時刻を人間が判読できる形式、つまり7/31/2013 10:03:53 AM.

RazorページでJSONシリアル化された日付形式を作成する方法はありますか?

4

2 に答える 2

2

JSON は日付形式を定義しません。ただし、クライアント側コンポーネントで使用される日付形式は、1970 年 1 月 1 日 00:00:00 から経過したミリ秒数である可能性が最も高いです。予想される出力を生成するには、経過したミリ秒数を計算する必要があり、次のように実行できます (dateTime変換する日付が含まれていると仮定します)。

var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
var elapsedSinceEpoch = dateTime - epoch;
var formattedDateTime = string.Format(
  @"""\/Date({0:F0})\/""",
  elapsedSinceEpoch.TotalMilliseconds
);

Razor ビューでこの書式設定を使用するには、コードをヘルパー メソッドでラップするのがおそらく最適です。

于 2013-07-31T07:33:31.587 に答える
0

標準の単一の日付形式を選択し、基本的にさまざまな日付形式を取り、好みの形式を吐き出す JavaScript ライブラリを用意する必要があります。たとえば、これは、jQuery UI の日付ピッカーを使用する必要があるが、選択した日付を別の形式で返す場合に関連します。

利用可能な日付処理ライブラリはいくつかありますが、私はMomentJSを使用しています。これは /Date(...)/ 形式を受け入れて日付オブジェクトを返すことができますが、特定の文字列形式から日付オブジェクトを作成することもできます。カスタム文字列形式で日付を送り出すためにも使用できます。

var formattedDate = moment().format("[/Date(]X[)/]");
于 2013-07-31T08:06:41.187 に答える