批改easyui datebox默认日期格式

2023-11-11 19:40

本文主要是介绍批改easyui datebox默认日期格式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

修改easyui datebox默认日期格式

问题描述: 根据jquery easyui datebox demo中给的示例,导入和使用datebox, 发现日期格式为: 6/22/2011, 其他的今天和关闭也是 Today, Close, 对中文用户有些不习惯。
期待效果: 日期格式 2011-06-22  今天 关闭
解决方案:  导入 <script type="text/javascript" src="../locale/easyui-lang-zh_CN.js"></script> 运用国际化定义解决此问题。



最近项目开发中要使用到日期选择框,由于使用了jquery,所以准备使用jquery easyui中的ui控件,找到他的主页,查看datebox的用法:
地址:http://www.jeasyui.com/documentation/datebox.php

Usage

[html] view plaincopy
  1. <input id="dd" type="text"></input>    

[javascript] view plaincopy
  1. $('#dd').datebox({    
  2.     required:true    
  3. });   

的确很容易就可以弹出日期选择框了。使用的时候发现,她的日期选择框选择的日期格式如图: 


日期格式为: 6/22/2011 ,我们平常喜欢使用的格式是“2011-06-22”, 同时 Today, Close 都为英文,要是能改成中文就好了。
于是开始求助百度,找到解决方案有以下两种:

1、在自己的jsp文件里,重载她的方法: formatter 和 parser.

[javascript] view plaincopy
  1. <script>  
  2.  $('#dd').datebox({  
  3.  closeText:'关闭',  
  4.  formatter:function(date){  
  5.   var y = date.getFullYear();  
  6.   var m = date.getMonth()+1;  
  7.   var d = date.getDate();  
  8.   var h = date.getHours();  
  9.   var M = date.getMinutes();  
  10.   var s = date.getSeconds();  
  11.   function formatNumber(value){  
  12.    return (value < 10 ? '0' : '') + value;  
  13.   }  
  14.   alert(formatNumber(h));  
  15.   return y+'-'+m+'-'+d+' '+ formatNumber(h)+':'+formatNumber(M)+':'+formatNumber(s);  
  16.  },  
  17.  parser:function(s){  
  18.   var t = Date.parse(s);  
  19.   if (!isNaN(t)){  
  20.    return new Date(t);  
  21.   } else {  
  22.    return new Date();  
  23.   }  
  24.  }  
  25. });  
  26. </script>  

有个哥们儿建议的方案是这样,的却这样可以实现修改选择日期格式为:  2011-06-22  中文汉字等功能,但是每个页面都要加这么一个函数怪费劲的,于是想想能不能来个全局的修改,不就省事儿了吗?改一次,全部都可以用。于是找到了第二个解决方案。
第一个方案地址:   http://zzx19452008-163-com.iteye.com/blog/894150


2、修改jquery easyui 的源代码

[javascript] view plaincopy
  1. //------------------格式化时间为 yyyy-MM-dd ---------------------------------------  
  2. $.fn.datebox.defaults.formatter = function(date) {  
  3. var y = date.getFullYear();  
  4. var m = date.getMonth() + 1;  
  5. var d = date.getDate();  
  6. return y + '-' + (m < 10 ? '0' + m : m) + '-' + (d < 10 ? '0' + d : d);  
  7. };  
  8. //  
  9. $.fn.datebox.defaults.parser = function(s) {  
  10. if (s) {  
  11. var a = s.split('-');  
  12. var d = new Date(parseInt(a[0]), parseInt(a[1]) - 1, parseInt(a[2]));  
  13. return d;  
  14. else {  
  15. return new Date();  
  16. }  
  17.   
  18. };  
  19.   
  20.   
  21.   
  22. 直接加到 jquery.easyui.min.js 最后就可以了,然后找到  $.fn.calendar.defaults  修改为如下格式就OK了。  
  23.   
  24.   
  25. $.fn.calendar.defaults = {width:180, height:180, fit:false, border:true, weeks:["一""二""三""四""五""六""日"], months:["一月""二月""三月""四月""五月""六月""七月""八月""九月""十月""十一月""十二月"], year:new Date().getFullYear(), month:new Date().getMonth() + 1, current:new Date(), onSelect:function (_6f) {  
  26. }};   

觉得这个方案挺好的,修改一次可以全部搞定,虽然有点侵入性。但是不管了,能解决问题就是王道。改完之后,发现没多大反应,解决方案失败。
第二个方案地址:  http://www.iteye.com/topic/855905

在修改源代码的过程中,偶然发现在/locale/easyui-lang-zh_CN.js文件里居然有我们要修改的内容,这是什么情况?
难道是搞得国际化多国语言支持?官网上给的demo示例,没有导入国际化的支持啊,试试吧,也许行呢?

源文件里的 datebox demo示例:

[html] view plaincopy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  2. <html>  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
  5. <title>DateBox - jQuery EasyUI Demo</title>  
  6.     <span style="background-color: rgb(153, 255, 255); "><link rel="stylesheet" type="text/css" href="../themes/default/easyui.css">  
  7.     <link rel="stylesheet" type="text/css" href="../themes/icon.css">  
  8.     <link rel="stylesheet" type="text/css" href="demo.css">  
  9.     <script type="text/javascript" src="../jquery-1.7.2.min.js"></script>  
  10.     <script type="text/javascript" src="../jquery.easyui.min.js"></script></span>  
  11.     <script>  
  12.         function disable(){  
  13.             $('#dd').datebox('disable');  
  14.         }  
  15.         function enable(){  
  16.             $('#dd').datebox('enable');  
  17.         }  
  18.     </script>  
  19. </head>  
  20. <body>  
  21.     <h2>DateBox</h2>  
  22.     <div class="demo-info">  
  23.         <div class="demo-tip icon-tip"></div>  
  24.         <div>Allow you to select date in your form.</div>  
  25.     </div>  
  26.       
  27.     <div style="margin:10px 0;">  
  28.         <a href="#" class="easyui-linkbutton" onclick="disable()">Disable</a>  
  29.         <a href="#" class="easyui-linkbutton" onclick="enable()">Enable</a>  
  30.     </div>  
  31.     <input id="dd" class="easyui-datebox" required="true"></input>  
  32. </body>  
  33. </html>  

加入/locale/easyui-lang-zh_CN.js:

[javascript] view plaincopy
  1. <script type="text/javascript" src="../locale/easyui-lang-zh_CN.js"></script>  


选择日期。居然得到想要的格式。见图片:


ok, 问题解决。真是感叹这外国人的架构原来设计的这么好用,佩服!

URL:http://www.myexception.cn/open-source/407247.html

这篇关于批改easyui datebox默认日期格式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/392395

相关文章

使用C++将处理后的信号保存为PNG和TIFF格式

《使用C++将处理后的信号保存为PNG和TIFF格式》在信号处理领域,我们常常需要将处理结果以图像的形式保存下来,方便后续分析和展示,C++提供了多种库来处理图像数据,本文将介绍如何使用stb_ima... 目录1. PNG格式保存使用stb_imagephp_write库1.1 安装和包含库1.2 代码解

springboot日期格式化全局LocalDateTime详解

《springboot日期格式化全局LocalDateTime详解》文章主要分析了SpringBoot中ObjectMapper对象的序列化和反序列化过程,并具体探讨了日期格式化问题,通过分析Spri... 目录分析ObjectMapper与jsonSerializer结论自定义日期格式(全局)扩展利用配置

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

更改docker默认数据目录的方法步骤

《更改docker默认数据目录的方法步骤》本文主要介绍了更改docker默认数据目录的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1.查看docker是否存在并停止该服务2.挂载镜像并安装rsync便于备份3.取消挂载备份和迁

禁止平板,iPad长按弹出默认菜单事件

通过监控按下抬起时间差来禁止弹出事件,把以下代码写在要禁止的页面的页面加载事件里面即可     var date;document.addEventListener('touchstart', event => {date = new Date().getTime();});document.addEventListener('touchend', event => {if (new

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal

easyui 验证下拉菜单select

validatebox.js中添加以下方法: selectRequired: {validator: function (value) {if (value == "" || value.indexOf('请选择') >= 0 || value.indexOf('全部') >= 0) {return false;}else {return true;}},message: '该下拉框为必选项'}