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

时间:2013-02-19 16:26:53

标签: extjs4.1

我正在尝试在表单中加载记录。其中一个字段类型是“datefield”,并且以毫秒为单位记录一个字段。

parital记录数据:

topAccount:"ALPINE"
tradeDate:1360167174553
tradeId:"2110720401"

并且视图是

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

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

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

由于 Tharahan

1 个答案:

答案 0 :(得分:5)

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

如果查看Date datatype,您会看到:

    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'
    }
});

使用数字,Ext.isDate()将失败。然后,Ext.Date.parseDate.parse都需要一个字符串,其标记不仅仅支持毫秒。

如果你坚持使用毫秒,请尝试:

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