0

サーバーから次の形式で日付を受信して​​います: Thu Apr 25 16:47:10 UTC+0200 2013.

タイプはDate.

DD/MM/YYYY日付をフォーマットで表示したい。だから私は Moment.js を使用し、エンティティの初期化関数で from を呼び出してregisterEntityTypeCtor、次のことを行います。

myEntity.CreatedDate = moment.utc(myEntity.CreatedDate).format('DD/MM/YYYY');

そのコードは適切にフォーマットされた日付を返しますが、myEntity.CreatedDate は変わりません。実際、Visual Studio デバッガーで調べてプロパティを展開すると、「prototype: Invalid Date」と表示されます。

2 つの質問があります。

  1. 私はそれを正しい方法でやっていますか?すなわち、registerEntityTypeCtor で変換を行うのは良いことですか?
  2. なぜ機能しないのですか :-) ?
4

2 に答える 2

2

Breeze の日付は JavaScript の日付です。あなたがしているのは、文字列で日付プロパティを設定することです。次に Breeze は、JavaScript のDate.parseメソッドを使用して文字列を解析し、日付を検証して検証します。これが失敗した場合、Breeze はそのままにしておくだけです。

一般に、日付プロパティをフォーマットする場合は、モデルではなくビューで行う必要があります。つまり、日付を表示している場所は、日付を文字列に変換するのに最適な場所です。ko や angular などのバインディング ライブラリを使用している場合、ほとんどの JavaScript テンプレート エンジンと同様に、どちらもこれを行うためのメカニズムを提供します。

于 2013-05-02T16:39:17.890 に答える
0
moment("myEntity.CreatedDate", "Do MMM YYYY").format("DD/MM/YYYY")

myEntity.CreatedDate で取得した形式に従って「Do MMM YYYY」を設定します

于 2013-05-15T11:33:25.077 に答える