EditorGridPanel关于时间格式[GTM格式]的初始,编辑

    在EXT中经常会遇到时间格式的初始化,编辑,保存的情况,其中时间格式也有精确度不同。下面介绍一下工作中遇到的一点问题及解决方法:[用到的控件为DateTimeField,为一个扩展控件,可以去网上下,也可以在我的资源里找,可以精确到秒]

   如下图,是一个简单的EditorGridPanel,里面最后一列需要初始化一个时间格式的字段。

 

  按平时正常的写法应该如下:

 

或者是这样:

 

这样的写法感觉应该没错,在ColunmModel里初始数据信息,时间格式的信息也会在renderer被格式化,但实际上显示的结果却并并不是时间格式的,而是“NaN-NaN-NaN”,这是为什么呢。原因如下:

   让我们来看看Ext.format.dateRenderer的源代码:

   //
     dateRenderer : function(format) {   
      return function(v) {   
        return Ext.util.Format.date(v, format);、   
       }  
    } 

 

我们从后台传来的值[字符串又被格式化了一次],因为传来的值已经是字符串格式,不是时间格式的,所有会出现此问题。

修改:如果只是单纯的显示的话,只需要把第二种方法中的Jsonreader中的字段的类型 type:'date' 修改成 type:'string'这样就可以了,可以正确的时间格式了。

但这是一个EditorGridPanel,还需要对时间进行编辑。选择了时间编辑器以后,如下图:

 选择完成之后,会显示如下格式的时间字段:Fri Aug 28 09:37:46 GMT + 0008[GMT时间格式],这是因为在renderer的对时间进行格式化时候出现了问题,因为从后台的时候不需要格,从时间编辑器里传值的时候需要格,有一个矛盾的过程,其实修改一下renderer属性即可:

  renderer:function(value){  
                    if(value instanceof Date){  
                        return new Date(value).format("Y-m-d H:i:s");  
                    }else{  
                        return value;  
                    } 
                }

对传的值进行一下判断!~~然后确定需要不需要格。

备注:不知道为什么,显示时间格式是正确,往后台传值保存的时候,却又是GMT时间格式的,需要在后台对那个GMT时间格式的字符串进行一个判断格式为正确的时间格式(y:M:d hh:mi:ss):

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值