当前位置: 首页 > news >正文

easyUI datetimebox 自定义显示格式

http://blog.csdn.net/littlewolf766/article/details/7329123

项目里需要显示自定义显示格式,比如只显示yyy,yyyy-mm,yyyy-mm-dd等格式。直接设置formatter参数的话,总是报错。用firefox调试后发现,好像在设置新的日期时

datetimebox控件会调用默认的parser指定的函数,把字符串转为日期格式。由于默认的只认"yyyy-MM-dd hh:mm:ss"格式(可以是其它分隔符,并非一定要是'-'),所以如果formatter函数返回的不是这个格式,会报错。

下面是我自己的实现方式:

datetimebox 设置:

 

[javascript]  view plain copy
 
  1. //加载日期控件  
  2. function loadDate() {  
  3.     startDTObj = $("#startDate");  
  4.     endDTObj = $("#endDate");  
  5.     startDTObj.datetimebox({  
  6.                 showSeconds:false,  
  7.                 formatter: formatDateText,  
  8.                 parser: parseDate  
  9.             });  
  10.     endDTObj.datetimebox({  
  11.         showSeconds:false,  
  12.         formatter: formatDateText,  
  13.         parser: parseDate  
  14.     });  
  15. }  

 

[javascript]  view plain copy
 
  1. /格式化显示的文本  
  2. function formatDateText(date) {  
  3.     var rainType = rainTypeObj.combobox("getValue");  
  4.     switch (rainType) {  
  5.         case '0':  
  6.                 return date.formatDate("yyyy-MM-dd hh:mm");  
  7.             break;  
  8.         case '1':  
  9.                 return date.formatDate("yyyy-MM-dd hh");  
  10.             break;  
  11.         case '2':  
  12.                 return date.formatDate("yyyy-MM-dd");  
  13.             break;  
  14.         case '3':  
  15.                 return date.formatDate("yyyy-MM");  
  16.             break;  
  17.         case '4':  
  18.                 return date.formatDate("yyyy-MM");  
  19.             break;  
  20.         case '5':  
  21.                 return date.formatDate("yyyy");  
  22.             break;  
  23.         default:  
  24.             break;  
  25.     }  
  26. }  

本菜鸟写的,由于js,正则不是很熟,写得不好。月,日默认使用‘01’,时间部分默认使用‘00’

[javascript]  view plain copy
 
  1. //把时间格式字符串转化为时间  
  2. //如下格式  
  3. //2006  
  4. //2006-01  
  5. //2006-01-01  
  6. //2006-01-01 12  
  7. //2006-01-01 12:12  
  8. //2006-01-01 12:12:12  
  9. function parseDate(dateStr) {  
  10.     var regexDT = /(\d{4})-?(\d{2})?-?(\d{2})?\s?(\d{2})?:?(\d{2})?:?(\d{2})?/g;  
  11.     var matchs = regexDT.exec(dateStr);  
  12.     var date = new Array();  
  13.     for (var i = 1; i < matchs.length; i++) {  
  14.         if (matchs[i]!=undefined) {  
  15.             date[i] = matchs[i];  
  16.         } else {  
  17.             if (i<=3) {  
  18.                 date[i] = '01';  
  19.             } else {  
  20.                 date[i] = '00';  
  21.             }  
  22.         }  
  23.     }  
  24.     return new Date(date[1], date[2]-1, date[3], date[4], date[5],date[6]);  
  25. }  

网上找的别人写的格式化日期的方法,很好用

 

 

[javascript]  view plain copy
 
  1. //为date类添加一个format方法  
  2. //yyyy 年  
  3. //MM 月  
  4. //dd 日  
  5. //hh 小时  
  6. //mm 分  
  7. //ss 秒  
  8. //qq 季度  
  9. //S  毫秒  
  10. Date.prototype.formatDate = function (format) //author: meizz  
  11. {  
  12.     var o = {  
  13.         "M+": this.getMonth() + 1, //month  
  14.         "d+": this.getDate(),    //day  
  15.         "h+": this.getHours(),   //hour  
  16.         "m+": this.getMinutes(), //minute  
  17.         "s+": this.getSeconds(), //second  
  18.         "q+": Math.floor((this.getMonth() + 3) / 3),  //quarter  
  19.         "S": this.getMilliseconds() //millisecond  
  20.     }  
  21.     if (/(y+)/.test(format)) format = format.replace(RegExp.$1,  
  22.     (this.getFullYear() + "").substr(4 - RegExp.$1.length));  
  23.     for (var k in o) if (new RegExp("(" + k + ")").test(format))  
  24.         format = format.replace(RegExp.$1,  
  25.       RegExp.$1.length == 1 ? o[k] :  
  26.         ("00" + o[k]).substr(("" + o[k]).length));  
  27.     return format;  
  28. }  

完成后效果:

 

相关文章:

  • genymotion在后台总是打印这个错误的log 有大神知道怎么解决吗
  • 高效快捷解决一个TextView显示多种字体的控件SpannableTextView
  • JavaScript判断各浏览器CSS前缀的两种方式
  • nginx动静分离后的一些小事故,给出处理方法
  • C#--索引
  • 观察者2
  • 使用异步消息处理更新UI线程
  • jquery 单击li防止重复加载的实现代码
  • delphi 线程同步的基本方法
  • apply,call,bind的区别
  • Razor语法
  • Failed to load VMMR0.r0
  • 如何学好一本编程语言
  • 记一次用 NodeJs 实现模拟登录的思路
  • position定位的小问题
  • 【Leetcode】104. 二叉树的最大深度
  • 【译】理解JavaScript:new 关键字
  • Apache Spark Streaming 使用实例
  • avalon2.2的VM生成过程
  • CSS相对定位
  • CSS中外联样式表代表的含义
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • JavaScript-Array类型
  • java第三方包学习之lombok
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • mongodb--安装和初步使用教程
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • React Transition Group -- Transition 组件
  • Spring Cloud中负载均衡器概览
  • VuePress 静态网站生成
  • 初识 webpack
  • 规范化安全开发 KOA 手脚架
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 如何设计一个比特币钱包服务
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 一个6年java程序员的工作感悟,写给还在迷茫的你
  • 正则与JS中的正则
  • ionic异常记录
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #《AI中文版》V3 第 1 章 概述
  • (4) PIVOT 和 UPIVOT 的使用
  • (Matlab)使用竞争神经网络实现数据聚类
  • (二)JAVA使用POI操作excel
  • (二)windows配置JDK环境
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (七)理解angular中的module和injector,即依赖注入
  • (算法二)滑动窗口
  • (五)Python 垃圾回收机制
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)拼包函数及网络封包的异常处理(含代码)
  • .bat文件调用java类的main方法
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .Net调用Java编写的WebServices返回值为Null的解决方法(SoapUI工具测试有返回值)
  • .NET开发人员必知的八个网站