kipenxie 2011-07-17 16:13
浏览 169
已采纳

extjs 网格ie下不显示日期

如附件所示,ie下日期栏是空的,谷歌浏览器下是有显示的。

列名的日期格式用Ext.util.Format.dateRenderer('Y-m-d')。

想问下为什么会这样,有哪位高手帮解决下。

  • 写回答

1条回答 默认 最新

  • ylf0716 2011-07-20 10:30
    关注

    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]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了