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]

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

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?