2

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

分娩记录数据:

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'),

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

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

谢谢塔拉汉

4

1 回答 1

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

有了数字,Ext.isDate()就会失败。然后两者都Ext.Date.parse期望Date.parse一个字符串,其标记不支持毫秒。

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

Ext.define('YourModel', {
    extend: 'Ext.data.Model',
    fields: [
        {name: 'tradeDate',  dateFormat: 'u' }
    ]
});
于 2013-02-19T20:28:19.473 回答