ノックアウトのテンプレートで日付をフォーマットしたいと思っています。日付は現在次のように返されています
2013-07-04T00:00:00
のように表示させたい
07/04/2013
これが私が使用しているバインディングです
<td data-bind="text: FirstDate">
Knockout のテンプレートの既定の書式設定プロパティですか?
ノックアウトのテンプレートで日付をフォーマットしたいと思っています。日付は現在次のように返されています
2013-07-04T00:00:00
のように表示させたい
07/04/2013
これが私が使用しているバインディングです
<td data-bind="text: FirstDate">
Knockout のテンプレートの既定の書式設定プロパティですか?
Knockout では、日付の書式設定や一般的な書式設定に関して何も組み込まれていません。バインディングはtext
プロパティ値を文字列に変換するだけなので、カスタム フォーマットが必要な場合は自分で行う必要があります。
JavaScript で日付を操作するのはそれほど簡単ではないため、moment.jsなどのサードパーティ ライブラリを使用する方がよいでしょう。format
使い方はとても簡単で、メソッドで日付をフォーマットできます。'L'
必要な月の数値、月の日、年の書式設定用に組み込みの書式があります。
ビューモデルでモーメントjsを使用するか、次のようにバインディングで直接使用できます。
<td data-bind="text: moment(FirstDate).format('L')">
または、このフォーマット ロジックをカプセル化するカスタム バインディング ハンドラーを作成することもできます。
注:データ バインディング式の内部で値を取得する場合は、必ずプロパティで使用()
してください。FirstDate
ko.observable
Stephen Redd の date extender の修正版で moment.js を使用しています。これは、データ バインドで関数を呼び出すよりも少しクリーンです。
<input type="text" data-bind="value: dateOfBirth.formattedDate" />