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”(=格式“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 回答