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中this的使用说明
Sep 06 Javascript
JavaScript打开word文档的实现代码(c#)
Apr 16 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
JavaScript实现广告的关闭与显示效果实例
Jul 02 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
Oct 27 Javascript
概述jQuery的元素筛选
Nov 23 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
Nov 21 Javascript
vue2.0 + ele的循环表单及验证字段方法
Sep 18 Javascript
vue自定义右键菜单之全局实现
Apr 09 Vue.js
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 防止单引号,双引号在接受页面转义
2008/07/10 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
JavaScript 异步调用框架 (Part 6 - 实例 &amp; 模式)
2009/08/04 Javascript
JavaScript解析URL参数示例代码
2013/08/12 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
Ajax 加载数据 练习代码
2017/01/05 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
jQuery实现颜色打字机的完整代码
2020/03/19 jQuery
Vue双向绑定实现原理与方法详解
2020/05/07 Javascript
以911新闻为例演示Python实现数据可视化的教程
2015/04/23 Python
python实现发送和获取手机短信验证码
2016/01/15 Python
Python实现带百分比的进度条
2016/06/28 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python实现感知机线性分类模型示例代码
2019/06/02 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
使用pickle存储数据dump 和 load实例讲解
2019/12/30 Python
python 实现多维数组(array)排序
2020/02/28 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
详解Python openpyxl库的基本应用
2021/02/26 Python
彻底解决pip下载pytorch慢的问题方法
2021/03/01 Python
分享全球十款超强HTML5开发工具
2014/05/14 HTML / CSS
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
Linux面试经常问的文件系统操作命令
2016/10/04 面试题
公司出差管理制度范本
2015/08/05 职场文书