ExtJS:日期时间字段和表单,时间字段未正确发送

时间:2012-04-24 15:25:46

标签: extjs extjs4

我有一个包含各种字段的表单:textfield,datefield等。除了时间场,一切都很好。

以下是我如何声明我的数据模型:

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
}

Heres是读取值时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'(=格式'Y-m-d'):

            ...
            {
                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
            },
            ...

这让我疯狂

1 个答案:

答案 0 :(得分:0)

我发现了,通过这段代码覆盖了JSON日期编码:

Ext.JSON.encodeDate = function(d) {
     return Ext.Date.format(d, '"Y-m-d"');
};