Extjs4 中date时间格式的问题

在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’格式的时间。

posted @ 2014-07-15 17:28  恶魔的果实  阅读(6725)  评论(1编辑  收藏  举报