EasyUI修改DateBox和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

注意:

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

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

问题二:日期格式改正

这两个控件在修改日期格式上都可以采用以下两种方法,我现在已以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>

显示效果如下:

方法二: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>

显示效果如下:

注意:

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

总结

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

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

(0)

相关推荐

  • jQueryeasyui 中如何使用datetimebox 取两个日期间相隔的天数

    功能需求如下: 1) 使用 datetimebox 日期控件, 选择开始日期 startdate, 结束日期 leavedate ,然后求两日期间相隔天数 numdays ; 2) 天数 x 补助 = 包干费用; (numdays * allowance = def11 ) 下面是效果图: 一. form 表单:开始时间,结束时间两个都使用 onChange 事件; <td>派遣时间:</td> <td><input class="easyui-date

  • JQuery EasyUI 日期控件如何控制日期选择区间

    复制代码 代码如下: <tr><th>发售起始日期</th> <td><input type="text" id="usLineTime" name="usLineTime" size="20" class='easyui-validatebox Wdate' onFocus="WdatePicker({el:'usLineTime',dateFmt:'yyyy-

  • jQuery EasyUI API 中文文档 DateTimeBox日期时间框

    扩展自 $.fn.datebox.defaults.用 $.fn.datetimebox.defaults 重写了 defaults. 依赖 datebox timespinner 用法 复制代码 代码如下: <input id="dt" type="text"></input> 复制代码 代码如下: $('#dt').datetimebox({ showSeconds:false }); 特性 其特性扩展自 datebox,下列是为 dat

  • jQuery EasyUI API 中文文档 - DateBox日期框

    扩展自 $.fn.combo.defaults.用 $.fn.datebox.defaults 重写了 defaults. 依赖 combo calendar 用法 复制代码 代码如下: <input id="dd" type="text"></input> 复制代码 代码如下: $('#dd').datebox({ required:true }); 特性 其特性扩展自 combo,下列是为 datebox 增加的特性. 名称 类型 说明

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

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

  • MongoDB批量将时间戳转为通用日期格式示例代码

    前言 时间戳(timestamp),通常是一个字符序列,唯一地标识某一刻的时间.本文将详细介绍MongoDB批量将时间戳转为通用日期格式的相关内容,下面话不多说了,来一起看看详细的介绍吧 1,官网提供的MONGODB遍历脚本: 官方文档地址:https://docs.mongodb.org/manual/tutorial/remove-documents/ >var arr = ["ab","cd","ef"] >var show =

  • 浅谈如何实现easyui的datebox格式化

    看了网上有很多的解决方法,我也写一个比较简单方法.实现easyui的datebox格式化.效果如下,用"++"隔开,看你喜欢用什么都可以. 1.html <span class="span1">证件有效期至:</span> <span><input id="passvali" name="hotel.passvali"></span> 2.js /* 证件有效期至 *

  • JavaScript实现设置默认日期范围为最近40天的方法分析

    本文实例讲述了JavaScript实现设置默认日期范围为最近40天的方法.分享给大家供大家参考,具体如下: 前面文章<JavaScript输出所选择起始与结束日期的方法>中的例子实现了选择日期,然后把选择的日期输出,这么一个功能. 不过实际项目中,测试人员说客户的需求是点击进入页面后,自动查询最近40天的数据. 想了想,实现的原理就是在页面加载之后,调用一个JavaScript函数设置日期,相比上一篇文章,除了修改了部分格式,还增加了onload函数. 另外,虽然把日期转为字符串可以用标准函数

  • 给easyui的datebox控件添加清空按钮的实现方法

    在不改源码的前提下给datebox添加清空按钮 var buttons = $.extend([], $.fn.datebox.defaults.buttons); buttons.splice(1, 0, { text: '清空', handler : function(target) { $(target).combo("setValue", "").combo("setText", ""); // 设置空值 $(targ

  • android 默认时间格式修改方法

    在android使用中,遇到修改默认时间格式时,总是束手无策,本文将以此问题提供解决方案,需要了解的朋友可以参考下 语言为英语时,默认的时间格式为mm/DD/yyyy,请问怎么将默认时间格式修改为:DD/mm/yyyy,不知道是在framework层给初始化的还是编译的时候给的初始值,哪位大侠知道怎么该? 1.修改文件alps\frameworks\base\packages\SettingsProvider\res\values\defaults.xml 增加代码<string name=&quo

  • Android8.1 源码修改之插入SIM卡默认启用Volte功能

     前言 公用电话产品,插入SIM卡后要求自动打开Volte功能,即插即用,用完拔卡就走 实现 第一步 开关对应的代码 通过打印日志和全局查找,源码位置 vendor/mediatek/proprietary/packages/services/Telephony/src/com/android/phone/MobileNetworkSettings.java 04-15 08:15:29.238 1191-1191/com.android.phone I/NetworkSettings: isU

  • 修改 CentOS 6.x 上默认Python的方法

    最近在工作中遇到一个问题,就是有一个功能希望在各种服务器上实现,而服务器上的系统版本可能都不一样,有的是 CentOS 6.x,有的是 CentOS 7.x . 需要说明的一点是,CentOS 6.x 上的 Python 版本是 2.6.x 的,而 CentOS 7.x 上的 Python 版本是 2.7.x 的,这意味着我要实现的功能要适配这两种版本的系统. 你可能会说,这有什么的,自己写的时候,注意一下就好了. 事情其实没有那么容易,我要实现的功能是基于一个框架进行定制,需要修改不少的框架代

  • 修改Vue打包后的默认文件名操作

    一,问题 因为我想在我的服务器上部署两个vue项目,但是vue打包后默认的项目名是dist,这样子就跟我上一个vue项目冲突了.因此查了一下资料. 二,解决方案 进入config ⇒ index.js,在build中将dist关键字改成其他名称即可. 补充知识:vue 打包后文件命名 在 confige文件中的 index 以上这篇修改Vue打包后的默认文件名操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 修改NPM全局模式的默认安装路径的方法

    一般情况下,我们安装Node.js环境,程序会自动把NPM全局模块的路径设置在系统盘(通常是C盘下),我们在项目开发阶段不建议全局路径设置在系统盘,不但会影响电脑的性能,而且还很不安全.可以通过以下命令来设置默认下载的全局路径目录: 输入命令,查看当前配置: npm config ls 运行结果: 如果是第一次使用NPM安装包的话,在配置中只会看到prefix的选项,就是NPM默认的全局安装目录.但是如果有多次使用NPM安装包的话,就会看到cache和prefix两个路径,如下图: 第一步: 在

随机推荐