开发者社区> imzdx> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

EasyUI修改DateBox和DateTimeBox的默认日期格式

简介:         最近整理Easyui控件的时候,对Easyui的DateBox控件和DateTimeBox控件进行了梳理,而我之所以将EasyUI的DateBox控件和DateTimeBox控件放在一起,归为一类,是因为这两个控件没有什么区别,如果你非得说这两个控件有区别,也无非是DateTimeBox控件后面除了基本的年月日之外带上了小时或者分钟或者秒什么的,更何况,这两个控件在进行日期格式化时所采用的方法也是一样的。
+关注继续查看
 

        最近整理Easyui控件的时候,对Easyui的DateBox控件和DateTimeBox控件进行了梳理,而我之所以将EasyUI的DateBox控件和DateTimeBox控件放在一起,归为一类,是因为这两个控件没有什么区别,如果你非得说这两个控件有区别,也无非是DateTimeBox控件后面除了基本的年月日之外带上了小时或者分钟或者秒什么的,更何况,这两个控件在进行日期格式化时所采用的方法也是一样的。

 

 

DateBox介绍:

 

 

        Demo实例参看:

                 http://www.jeasyui.com/demo/main/index.php?plugin=DateBox&theme=default&dir=ltr&pitem=

         属性方法介绍参看:

                  http://www.jeasyui.com/documentation/index.php#

 

DateTimeBox介绍:

 

         Demo实例参看:

                  http://www.jeasyui.com/demo/main/index.php?plugin=DateTimeBox&theme=default&dir=ltr&pitem=   

          属性方法介绍参看:

                  http://www.jeasyui.com/documentation/index.php#

 

控件的默认格式:

 

                  DateBox控件默认的日期格式是:                           DateTimeBox控件默认日期格式是:

                                                                           

 

        这种显示的格式都是:mm/dd/yyyy,对于我们中国人来说,并不适合我们的习惯,同时,他们夹带了“Today”、“Ok”、“Close”等字样,如果就这么给用户使用,虽然说当前这个社会,我们需要面向国际,但软件的使用者还是我们自己中国客户,所以说问题就来了~~~~~

 

问题一:英文改中文

 

        解决方法:引入easyui-lang-zh_CN.js

 

       下载地址为:http://www.softhy.net/soft/33695.htm

        注意:

               第一:Easyui引用js时,要先引入jquery.min.js、其次是jquery.easyui.min.js,最后是easyui-lang-zh_CN.js,存在顺序关系。

               第二:引入easyui-lang-zh_CN.js后,相应的提示信息也会改变,同时改变了这两个控件的日期默认显示格式,为:yyyy-mm-dd,效果如下:

                                

 

                               

问题二:日期格式改正

 
        这两个控件在修改日期格式上都可以采用以下两种方法,我现在已以DateTimeBox为例,说明他们是如何实现的。
 

方法一:split函数+正则表达式

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. <div style="margin:20px 0;"></div>  
  2.     定义日期格式:   
  3.     <input class="easyui-datetimebox" data-options="formatter:ww4,parser:w4" style="width:200px;"> yyyy年mm月dd日hh点</input>  
  4.     <script type="text/javascript">  
  5.         function ww4(date){  
  6.             var y = date.getFullYear();  
  7.             var m = date.getMonth()+1;  
  8.             var d = date.getDate();  
  9.             var h = date.getHours();  
  10.             return  y+'年'+(m<10?('0'+m):m)+'月'+(d<10?('0'+d):d)+'日'+(h<10?('0'+h):h)+'点';  
  11.               
  12.         }  
  13.         function w4(s){  
  14.             var reg=/[\u4e00-\u9fa5]/  //利用正则表达式分隔  
  15.             var ss = (s.split(reg));  
  16.             var y = parseInt(ss[0],10);  
  17.             var m = parseInt(ss[1],10);  
  18.             var d = parseInt(ss[2],10);  
  19.             var h = parseInt(ss[3],10);  
  20.             if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h)){  
  21.                 return new Date(y,m-1,d,h);  
  22.             } else {  
  23.                 return new Date();  
  24.             }  
  25.         }  
  26.     </script>  

 

显示效果如下:

                   

 

方法二:substring函数

 

[javascript] view plaincopy在CODE上查看代码片派生到我的代码片
 
  1. <div style="margin:20px 0;"></div>  
  2.     定义日期格式:   
  3.     <input class="easyui-datetimebox" data-options="formatter:ww3,parser:w3" style="width:200px;"> yyyy/mm/dd hh-mm-ss</input>  
  4.     <script type="text/javascript">  
  5.         function ww3(date){  
  6.             var y = date.getFullYear();  
  7.             var m = date.getMonth()+1;  
  8.             var d = date.getDate();  
  9.             var h = date.getHours();  
  10.             var min = date.getMinutes();  
  11.             var sec = date.getSeconds();  
  12.             var str = y+'/'+(m<10?('0'+m):m)+'/'+(d<10?('0'+d):d)+'/'+' '+(h<10?('0'+h):h)+':'+(min<10?('0'+min):min)+':'+(sec<10?('0'+sec):sec);  
  13.             return str;  
  14.         }  
  15.         function w3(s){  
  16.             if (!s) return new Date();  
  17.             var y = s.substring(0,4);  
  18.             var m =s.substring(5,7);  
  19.             var d = s.substring(8,10);  
  20.             var h = s.substring(11,14);  
  21.             var min = s.substring(15,17);  
  22.             var sec = s.substring(18,20);  
  23.             if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min) && !isNaN(sec)){  
  24.                 return new Date(y,m-1,d,h,min,sec);  
  25.             } else {  
  26.                 return new Date();  
  27.             }  
  28.         }  
  29.     </script>  
显示效果如下:

 

                  注意:

       方法二不适合将日期格式改为类似于yyyy-m-d h-m-s,理由:Substring函数是截取字符串,而在yyyy-m-d hh-mm-ss这种日期格式中m、d、h、m、s可能会存在一位数和二位数,整个日期的长度不固定,因此在截取的时候,选取的字符位置不能固定。

   

 

总结

 
       这两种方法的本质一样,不管是哪种解决方式,它的原理都是不变的,主要是借用Formatter和Parser函数,其中Formatter函数使得选择日期后将其格式化为我们需要的格式,Parser是分析字符串的函数,这个函以’date’为参数并返回一个日期。问题来了,不光是要知道它们的解决方式,还要知道它们是怎么产生的,应该怎么从根本上解决这个问题,这些解决方式背后的本质是什么。
       
来源:http://blog.csdn.net/littlewolf766/article/details/7329123

        

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
jquery easyui datebox 时间控件默认显示当前日期的实现方法
jquery easyui datebox 时间控件默认显示当前日期的实现方法 直接class easyui-datebox后添加一个value="true"就可以
923 0
EasyUI DateBox 按钮自定义添加功能
DateBox Buttons - jQuery EasyUI Demo DateBox Buttons This example shows how to customize the datebox buttons underneath the calendar.
887 0
easyUI——datebox验证和自定义取消按钮
来源:http://blog.csdn.net/liusong0605/article/details/42270463 1. datebox验证        验证结束时间 start;               return varify;           },           message : '结束时间要大于开始时间!'       }   });   2. 自定义清除按钮       datebox默认设置了currentText、closeText、okText。
956 0
jQuery EasyUI API 中文文档 - 日期框(DateBox)
DateBox 日期框 扩展自 $.fn.combo.defaults。用 $.fn.datebox.defaults 重写了 defaults。 依赖 combo calendar 用法 1. 1. $('#dd').datebox({   2.     required:true 3. });  特性 其特性扩展自 combo,下列是为 datebox 增加的特性。
679 0
+关注
imzdx
数据库相关技术专家
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载