Ext JS 4:无法在'datefield'中显示记录中的日期

jpr*_*ism 2 extjs4.1

我试图在表单中加载记录.其中一个字段类型是"datefield",并且以毫秒为单位记录一个字段.

口述记录数据:

topAccount:"ALPINE"
tradeDate:1360167174553
tradeId:"2110720401"
Run Code Online (Sandbox Code Playgroud)

而且观点是

 xtype: 'datefield',
 name: 'tradeDate',
 itemId: 'tradeDate',
 margin: 8,
 fieldLabel: 'Trade Date:',
 renderer: Ext.util.Format.dateRenderer('Y/m/d'),
Run Code Online (Sandbox Code Playgroud)

但是,当表单加载记录时,我得到空字段.

有人可以帮我解决这个问题吗?

谢谢Tharahan

Izh*_*aki 5

1360167174553不是此目的的有效日期.1920-12-01T13:00是.

如果查看Date数据类型,您将看到:

    DATE: {
        convert: function(v) {
            var df = this.dateReadFormat || this.dateFormat,
                parsed;

            if (!v) {
                return null;
            }
            if (Ext.isDate(v)) {
                return v;
            }
            if (df) {
                return Ext.Date.parse(v, df);
            }

            parsed = Date.parse(v);
            return parsed ? new Date(parsed) : null;
        },
        sortType: st.asDate,
        type: 'date'
    }
});
Run Code Online (Sandbox Code Playgroud)

有了数字,Ext.isDate()就会失败.随后双方Ext.Date.parseDate.parse期待一个字符串,标记它不支持只是毫秒.

如果你坚持使用毫秒,试试这个:

Ext.define('YourModel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'tradeDate',  dateFormat: 'u' }
    ]
});
Run Code Online (Sandbox Code Playgroud)