2016-08-10 6 views
0

フォーム提出時に、DateFieldを含むExtJsを使用して開発されたフォームが、定義したフォーマットではなく数秒で提出されます。ExtJs DateFieldは、フォーム提出時に日付の代わりに秒を提出します。

私の問題は次のとおりです。formatプロパティで定義されているのと同じ形式で日付を送信したいと思います。

Ext.create('Ext.form.field.Date',{ 
     fieldLabel: 'Date1', 
     name: 'date1', 
     id: 'date1', 
     allowBlank: true, 
     format: 'Y-m-d', 
     submitFormat: 'Y-m-d', 
    }) 

誰かがそれを把握するために私を助けることができる場合、私は感謝:

以下はDateFieldのコードスニペットです。

ありがとうございます。

+0

現在、このフォーマットは 'm/d/Y'ですか?これはデフォルトです。 – UDID

+0

@UDID、いいえ、数秒で取得できます。 1472063400 –

+0

私はこれに答えました。確認してからお試しください。 – UDID

答えて

2

日付フィールドのフォーマットでは、デフォルト値は"m/d/Y"DateDocになります。あなたのフォーマットはExt.Date#parseに従って有効でなければなりません。 Date Parse

希望のフォーマットを作成するには、Ext.Date#parseを使用する必要があります。

dt = Ext.Date.parse("2006-01-15", "Y-m-d"); 

日付の解析については、リンクを参照してください。

私はあなたのためのフィドラーを作成しました。ご確認くださいFiddle

+0

お返事ありがとうございます。しかし、たとえデフォルトのフォーマット「m/d/Y」を使用しようとしても、同じ値を取得したすべての日付1472063400 –

+0

のように秒単位で値を送信し続ける1472063400? – UDID

+0

私はあなたのフィドルをチェックしました。はい、そこで動作しますが、私は自分のプロジェクトでそれを実装すると、なぜ動作しないのだろうと思います。 –

0

Form.getRecordは、モデルインスタンスas per the docsを返します。

モデルインスタンスには、値のタイプが定義されたフィールドがあります(as per the docs)。あなたのフィールドが日付ではなくintフィールドとして定義されている場合、秒が得られます。日付フィールドとして定義すると、javascriptの日付が取得されます。

あなたが実際にサーバにそのモデルを送信する方法に応じて、手動でExt.Date.formatを使用して、所望の文字列にモデルから日付をフォーマットする必要があります、またはあなたは、フィールドのdateWriteFormat設定、as per the docsを使用することができます。