easyUI datetimebox 自定义显示格式
来源:互联网 发布:少儿趣味编程学些什么 编辑:程序博客网 时间:2024/05/17 01:32
源文地址: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 设置:
- //加载日期控件
- function loadDate() {
- startDTObj = $("#startDate");
- endDTObj = $("#endDate");
- startDTObj.datetimebox({
- showSeconds:false,
- formatter: formatDateText,
- parser: parseDate
- });
- endDTObj.datetimebox({
- showSeconds:false,
- formatter: formatDateText,
- parser: parseDate
- });
- }
//加载日期控件function loadDate() { startDTObj = $("#startDate"); endDTObj = $("#endDate"); startDTObj.datetimebox({ showSeconds:false, formatter: formatDateText, parser: parseDate }); endDTObj.datetimebox({ showSeconds:false, formatter: formatDateText, parser: parseDate });}
- /格式化显示的文本
- function formatDateText(date) {
- var rainType = rainTypeObj.combobox("getValue");
- switch (rainType) {
- case '0':
- return date.formatDate("yyyy-MM-dd hh:mm");
- break;
- case '1':
- return date.formatDate("yyyy-MM-dd hh");
- break;
- case '2':
- return date.formatDate("yyyy-MM-dd");
- break;
- case '3':
- return date.formatDate("yyyy-MM");
- break;
- case '4':
- return date.formatDate("yyyy-MM");
- break;
- case '5':
- return date.formatDate("yyyy");
- break;
- default:
- break;
- }
- }
/格式化显示的文本function formatDateText(date) { var rainType = rainTypeObj.combobox("getValue"); switch (rainType) { case '0': return date.formatDate("yyyy-MM-dd hh:mm"); break; case '1': return date.formatDate("yyyy-MM-dd hh"); break; case '2': return date.formatDate("yyyy-MM-dd"); break; case '3': return date.formatDate("yyyy-MM"); break; case '4': return date.formatDate("yyyy-MM"); break; case '5': return date.formatDate("yyyy"); break; default: break; }}
本菜鸟写的,由于js,正则不是很熟,写得不好。月,日默认使用‘01’,时间部分默认使用‘00’
- //把时间格式字符串转化为时间
- //如下格式
- //2006
- //2006-01
- //2006-01-01
- //2006-01-01 12
- //2006-01-01 12:12
- //2006-01-01 12:12:12
- function parseDate(dateStr) {
- var regexDT = /(\d{4})-?(\d{2})?-?(\d{2})?\s?(\d{2})?:?(\d{2})?:?(\d{2})?/g;
- var matchs = regexDT.exec(dateStr);
- var date = new Array();
- for (var i = 1; i < matchs.length; i++) {
- if (matchs[i]!=undefined) {
- date[i] = matchs[i];
- } else {
- if (i<=3) {
- date[i] = '01';
- } else {
- date[i] = '00';
- }
- }
- }
- return new Date(date[1], date[2]-1, date[3], date[4], date[5],date[6]);
- }
//把时间格式字符串转化为时间//如下格式//2006//2006-01//2006-01-01//2006-01-01 12//2006-01-01 12:12//2006-01-01 12:12:12function parseDate(dateStr) { var regexDT = /(\d{4})-?(\d{2})?-?(\d{2})?\s?(\d{2})?:?(\d{2})?:?(\d{2})?/g; var matchs = regexDT.exec(dateStr); var date = new Array(); for (var i = 1; i < matchs.length; i++) { if (matchs[i]!=undefined) { date[i] = matchs[i]; } else { if (i<=3) { date[i] = '01'; } else { date[i] = '00'; } } } return new Date(date[1], date[2]-1, date[3], date[4], date[5],date[6]);}
网上找的别人写的格式化日期的方法,很好用
- //为date类添加一个format方法
- //yyyy 年
- //MM 月
- //dd 日
- //hh 小时
- //mm 分
- //ss 秒
- //qq 季度
- //S 毫秒
- Date.prototype.formatDate = function (format)//author: meizz
- {
- var o = {
- "M+": this.getMonth() + 1,//month
- "d+": this.getDate(),//day
- "h+": this.getHours(),//hour
- "m+": this.getMinutes(),//minute
- "s+": this.getSeconds(),//second
- "q+": Math.floor((this.getMonth() + 3) / 3),//quarter
- "S": this.getMilliseconds()//millisecond
- }
- if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
- (this.getFullYear() + "").substr(4 - RegExp.$1.length));
- for (var kin o) if (new RegExp("(" + k +")").test(format))
- format = format.replace(RegExp.$1,
- RegExp.$1.length == 1 ? o[k] :
- ("00" + o[k]).substr(("" + o[k]).length));
- return format;
- }
//为date类添加一个format方法//yyyy 年//MM 月//dd 日//hh 小时//mm 分//ss 秒//qq 季度//S 毫秒Date.prototype.formatDate = function (format) //author: meizz{ var o = { "M+": this.getMonth() + 1, //month "d+": this.getDate(), //day "h+": this.getHours(), //hour "m+": this.getMinutes(), //minute "s+": this.getSeconds(), //second "q+": Math.floor((this.getMonth() + 3) / 3), //quarter "S": this.getMilliseconds() //millisecond } if (/(y+)/.test(format)) format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); for (var k in o) if (new RegExp("(" + k + ")").test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length)); return format;}
完成后效果:
- easyUI datetimebox 自定义显示格式
- easyUI datetimebox 自定义显示格式
- easyUI datetimebox 自定义显示格式
- js--easyUI datetimebox 自定义显示格式 .
- js--easyUI datetimebox 自定义显示格式 .
- 自定义EasyUI的datetimebox控件日期时间的显示格式
- easyui datetimebox修改默认显示格式
- EasyUI datetimebox显示当前时间
- 【EasyUi】自定义日期显示格式
- EasyUI——DateBox和DateTimeBox的汉化和显示格式修改
- easyui-datetimebox默认显示当前时间
- easyui datetimebox 如何只显示月份
- easyUI DateTimeBox
- jquery easyui 时间空件datetimebox格式转换
- EasyUI修改DateBox和DateTimeBox的默认日期格式
- EasyUI修改DateBox和DateTimeBox的默认日期格式
- 修改EasyUI中DateBox和DateTimeBox的格式
- EasyUI修改DateBox和DateTimeBox的默认日期格式
- ASP连接 connectionString
- Performance Monitor (2012-03-09 14:22:37)
- 一个参数在注塑行业的影响——“停留时间”
- java 集合与数组的区别
- 让Android程序获得系统的权限,实现关机重启,静默安装等功能
- easyUI datetimebox 自定义显示格式
- ARM 汇编若干问题(一般中断问题与软中断SWI分析)
- 什么是iNAND,iNAND有什么优点
- 寂寞求评论
- sqlite加密-SQLCipher
- oracle中的字符型函数
- 学习之如何确定用到哪些IO类对象
- 常用webService接口收集
- 第二章 构造高效且健壮的网络程序(一)