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


Posted in Javascript onJanuary 18, 2017

最近整理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控件默认日期格式是:

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

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

问题一:英文改中文

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

注意:

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

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

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

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

问题二:日期格式改正

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

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

定义日期格式: 
 <input class="easyui-datetimebox" data-options="formatter:ww4,parser:w4" style="width:200px;"> yyyy年mm月dd日hh点</input> 
 <script type="text/javascript"> 
  function ww4(date){ 
   var y = date.getFullYear(); 
   var m = date.getMonth()+1; 
   var d = date.getDate(); 
   var h = date.getHours(); 
   return y+'年'+(m<10?('0'+m):m)+'月'+(d<10?('0'+d):d)+'日'+(h<10?('0'+h):h)+'点'; 
    
  } 
  function w4(s){ 
   var reg=/[\u4e00-\u9fa5]/ //利用正则表达式分隔 
   var ss = (s.split(reg)); 
   var y = parseInt(ss[0],10); 
   var m = parseInt(ss[1],10); 
   var d = parseInt(ss[2],10); 
   var h = parseInt(ss[3],10); 
   if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h)){ 
    return new Date(y,m-1,d,h); 
   } else { 
    return new Date(); 
   } 
  } 
 </script>

显示效果如下:

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

方法二:substring函数

定义日期格式: 
 <input class="easyui-datetimebox" data-options="formatter:ww3,parser:w3" style="width:200px;"> yyyy/mm/dd hh-mm-ss</input> 
 <script type="text/javascript"> 
  function ww3(date){ 
   var y = date.getFullYear(); 
   var m = date.getMonth()+1; 
   var d = date.getDate(); 
   var h = date.getHours(); 
   var min = date.getMinutes(); 
   var sec = date.getSeconds(); 
   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); 
   return str; 
  } 
  function w3(s){ 
   if (!s) return new Date(); 
   var y = s.substring(0,4); 
   var m =s.substring(5,7); 
   var d = s.substring(8,10); 
   var h = s.substring(11,14); 
   var min = s.substring(15,17); 
   var sec = s.substring(18,20); 
   if (!isNaN(y) && !isNaN(m) && !isNaN(d) && !isNaN(h) && !isNaN(min) && !isNaN(sec)){ 
    return new Date(y,m-1,d,h,min,sec); 
   } else { 
    return new Date(); 
   } 
  } 
 </script>

显示效果如下:

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

注意:

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

总结

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。      

Javascript 相关文章推荐
jquery 中的each()跳出循环的语句
May 23 Javascript
解决bootstrap中modal遇到Esc键无法关闭页面
Mar 09 Javascript
浅谈javascript的Touch事件
Sep 27 Javascript
超赞的jQuery图片滑块动画特效代码汇总
Jan 25 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
May 03 Javascript
轻松实现js弹框显示选项
Sep 13 Javascript
vue-cli2.9.3 详细教程
Apr 23 Javascript
jQuery实现遍历XML节点和属性的方法示例
Apr 29 jQuery
详解vue-cli3多环境打包配置
Mar 28 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 Vue.js
详解JavaScript中的执行上下文及调用堆栈
Apr 29 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
Jan 18 #Javascript
jQuery Masonry瀑布流插件使用方法详解
Jan 18 #Javascript
js实现消息滚动效果
Jan 18 #Javascript
利用Vue.js实现checkbox的全选反选效果
Jan 18 #Javascript
微信小程序的动画效果详解
Jan 18 #Javascript
详解微信小程序开发之——wx.showToast(OBJECT)的使用
Jan 18 #Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 #Javascript
You might like
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
php数组操作之键名比较与差集、交集赋值的方法
2014/11/10 PHP
PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】
2016/10/14 PHP
YII2框架中查询生成器Query()的使用方法示例
2020/03/18 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
2020/09/13 PHP
[原创]后缀就扩展名为js的文件是什么文件
2007/12/06 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
利用JQuery和Servlet实现跨域提交请求示例分享
2014/02/12 Javascript
javascript删除数组元素并且数组长度减小的简单实例
2014/02/14 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
canvas 实现中国象棋
2017/02/17 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
用JS实现简单的登录验证功能
2017/07/28 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
node.js实现上传文件功能
2019/07/15 Javascript
vue实现codemirror代码编辑器中的SQL代码格式化功能
2019/08/27 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
Python备份Mysql脚本
2008/08/11 Python
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
python中Apriori算法实现讲解
2017/12/10 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
十行代码使用Python写一个USB病毒
2019/06/21 Python
Django中如何使用sass的方法步骤
2019/07/09 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
2019/07/19 Python
使用pyecharts生成Echarts网页的实例
2019/08/12 Python
python中删除某个元素的方法解析
2019/11/05 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
python 如何停止一个死循环的线程
2020/11/24 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
《晏子使楚》教学反思
2014/02/08 职场文书
2014党员自我评议表范文
2014/09/20 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
2015年农村党员干部主题教育活动总结
2015/03/25 职场文书
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js