在Grid中显示时间,后台传过来的是date格式的数据(PHP date('Y-m-d', time()),一般在Ext model中定义数据的类型和格式:
{name:'birth', type:'date'},
view层:
{ header: '生日', dataIndex: 'birth', editor:{ xtype: 'datefield', format : 'Y-m-d'}}
但这是个可编辑的grid row,通过搜索得知,必须自己定义renderer,试过:
renderer:function(value) { if(value instanceof Date) { return new Date(value).format('Y-m-d'); } else { return value; } }
在显示和编辑时候显示的是 2014-07-15这样的,但是在编辑状态为空,编辑完后显示为“Tue Jul 15 2014 08:00:00 GMT+0800 (中国标准时间)”,显然不符合。
再搜索,原来还有个util的类,专门是格式化数据的“Ext.util.Format”, view层代码修改为:
{ header: '生日', dataIndex: 'birth', editor:{ xtype: 'datefield', format : 'Y-m-d'}, renderer:new Ext.util.Format.dateRenderer('Y-m-d')}
即可正确显示‘Y-m-d’格式的时间。