1

テキストフィールド、日付フィールドなど、あらゆる種類のフィールドを持つフォームがあります。タイムフィールドを除いて、すべて正常に動作します。

データモデルを宣言する方法は次のとおりです。

Ext.define('Intranet.Horaire', {
    extend: 'Ext.data.Model',
    fields: [
        {   
            name: 'id',
            type: 'int',
            useNull: true
        },  
        ...blabla...
        {   
            name: 'heure_debut',
            type: 'date',
            dateFormat: 'Y-m-d H:i:s'
        },  
        {   
            name: 'heure_fin',
            type: 'date',
            dateFormat: 'Y-m-d H:i:s'
        }   
    ]
});

そして、これが私の見解でのものを宣言する方法です:

{
...
}, {
    fieldLabel: 'Heure début ',
    name: 'heure_debut',
    xtype: 'timefield',
    format: 'H:i',
    allowBlank: false
}, {
    fieldLabel: 'Heure fin ',
    name: 'heure_fin',
    xtype: 'timefield',
    format: 'H:i',
    allowBlank: false
}

値を読み取るときに Ext が取得するものは次のとおりです。

{
   "data":[
      {
         ...blabla...
         "heure_debut":"0000-00-00 09:15:00",
         "heure_fin":"0000-00-00 12:15:00",
         "id":"5"
      },
      {
         ...blabla...
         "heure_debut":"0000-00-00 09:15:00",
         "heure_fin":"0000-00-00 12:15:00",
         "id":"7"
      }
   ],
   "message":"",
   "success":true
}

そして、読書はうまくいきます。ただし、書き込みに関しては、選択した時間に関係なく常に送信される値は次のとおりです。

{
   "data":{
      "heure_debut":"2008-01-01",
      "heure_fin":"2008-01-01",
      "id":7,
      "jours":[

      ]
   }
}

[編集] submitFormat プロパティを追加しましたが、何も変わりません: 送信されるのは定数 '2008-01-01' (= format 'Ymd') のままです:

            ...
            {
                fieldLabel: 'Heure début ',
                name: 'heure_debut',
                xtype: 'timefield',
                format: 'H:i',
                submitFormat: 'Y-m-d H:i:s',
                allowBlank: false
            }, {
                fieldLabel: 'Heure fin ',
                name: 'heure_fin',
                xtype: 'timefield',
                format: 'H:i',
                submitFormat: 'Y-m-d H:i:s',
                allowBlank: false
            },
            ...

これは私を狂わせる

4

1 に答える 1

0

私はそれを見つけました、それは私がこのコードを介してJSON日付エンコーディングをオーバーライドしたことでした:

Ext.JSON.encodeDate = function(d) {
     return Ext.Date.format(d, '"Y-m-d"');
};
于 2012-04-25T09:32:30.440 に答える