首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

对Ext中DateField字段的扩张

2012-11-14 
对Ext中DateField字段的扩展?Ext中的DateField字段默认显示格式为m/d/Y,不太符合中国的使用习惯,以-号

对Ext中DateField字段的扩展

?Ext中的DateField字段默认显示格式为'm/d/Y',不太符合中国的使用习惯,以'-'号隔开,或直接显示'xxxx年x月x日'的格式,并且在同一个软件系统中,通常情况会希望日期的显示格式都相同,不要在每个页面中单独设置显示样式。

另外,由于后台传输到前台的格式一般都是java中的Date类型,直接传输到前台会因为Ext中的时区设置问题造成转换错。

基于以上原因,扩展Ext中的DateField字段类型,代码如下所示:

?

?

?

justgin.bap.DateFieldEx = Ext.extend(Ext.form.DateField,{format:"Y-m-d",initComponent: function() {this.hideTrigger = this.readOnly;justgin.bap.DateFieldEx.superclass.initComponent.call(this);},setValue:function(value){var date = this.formatDate2(value);justgin.bap.DateFieldEx.superclass.setValue.call(this, date);},// private ,ext自己有个formatDate方法,因此这里用formatDate2    formatDate2 : function(date){        //CST时间和UTC时差转换        var dateStr=date.toString();        var position=dateStr.indexOf("UTC");        if(position!=-1){        return Ext.util.Format.date(date, this.format);        }else{        var vdate=new Date(date); //后台默认为格林尼治时间,该方法会默认把后台时间认为是北京时间,北京时间比格林尼治时间多14小时。        //找出当地时间偏移值的毫秒数        var localOffset=vdate.getTimezoneOffset()*60000;         var utcOffset= vdate.getTime() + localOffset;        timezone=utcOffset-6*3600000;//        var lastDate=new Date(timezone);         return Ext.util.Format.date(lastDate, this.format);         }    }});

?

热点排行