<input type="date"/>
Emberjs でを作成しようとしていますが、 2 つの問題があります。
- 私の国では、日付は DD-MM-YYYY 形式で表示されますが、日付フィールドには MM-DD-YYYY 形式が必要です (その後、ブラウザはロケールに従って表示します)。したがって、ブラウザが日付入力フィールドをサポートしている場合は日付をフォーマットする必要があり、サポートしていない場合は別の方法でフォーマットする必要があります。
- 日付は Date オブジェクトにバインドされています
書式設定と Ember Data に Momentjs を使用しています。
私は Ember.TextField を次のように拡張しようとしています:
App.DateField = Ember.TextField.extend
value: ( (key, value) ->
if value?
if /Date/.test value.constructor #I assume that if the passed value is a Date object then it is arriving directly from the model
if Modernizr.inputtypes.date
moment(value).format('YYYY-MM-DD')
else
moment(value).format('DD-MM-YYYY')
else # if the passed value is not a Date object then the user is typing into the form
if Modernizr.inputtypes.date
value = new Date('value')
else
value
).property()
type: 'date'
日付入力をサポートするブラウザーでは、これが機能します。他のブラウザーでは、日付は正しく表示されますが、モデルに (間違った形式の) 文字列として保存されます。
バックエンドで Date オブジェクトを使用しながら正しいフォーマットを維持するにはどうすればよいですか?
アップデート
受け入れられた回答で提供されたブログ投稿のおかげで、デモを更新してやりたいことを実行できました(いくつかの奇妙な点がありますが、現時点では関係ありません)