如附件所示,ie下日期栏是空的,谷歌浏览器下是有显示的。
列名的日期格式用Ext.util.Format.dateRenderer('Y-m-d')。
想问下为什么会这样,有哪位高手帮解决下。
如附件所示,ie下日期栏是空的,谷歌浏览器下是有显示的。
列名的日期格式用Ext.util.Format.dateRenderer('Y-m-d')。
想问下为什么会这样,有哪位高手帮解决下。
Ext.util.Format.dateRenderer('Y-m-d') 查看这个源码:
[code="java"] dateRenderer : function(format) {
return function(v) {
return Ext.util.Format.date(v, format);
};
},
[/code]
再看看 Ext.util.Format.date 源码:
[code="java"]date : function(v, format) {
if (!v) {
return "";
}
if (!Ext.isDate(v)) {
[color=darkred]v = new Date(Date.parse(v));[/color]
}
return v.dateFormat(format || "m/d/Y");
},[/code]
里面调用的是Date.parse来解析日期的 IE下格式必须是这样的 2011/7/16 00:00:00
你可以自己写个renderer调用Ext的Date.parseDate(v, 'Y-m-d H:i:s')来解析就对了
renderer: function(v){
return (Date.parseDate(v, 'Y-m-d H:i:s')).format('Y-m-d');
}
如果想调整源码的话可以多传一个参数,就要告诉要转化的日期原来是什么格式的
[code="java"]
Ext.override(Ext.util.Format, {
date : function(v, format, origformat) {
if (!v) {
return "";
}
if (!Ext.isDate(v)) {
if (origformat) {
v = Date.parseDate(v, origformat);
}else {
v = new Date(Date.parse(v));
}
}
return v.dateFormat(format || "m/d/Y");
},
dateRenderer : function(format, origformat) {
return function(v) {
return Ext.util.Format.date(v, format, origformat);
};
}
});
[/code]