js--easyUI datetimebox 自定义显示格式 .
2014-04-15 10:07
465 查看
项目里需要显示自定义显示格式,比如只显示yyy,yyyy-mm,yyyy-mm-dd等格式。直接设置formatter参数的话,总是报错。用firefox调试后发现,好像在设置新的日期时
datetimebox控件会调用默认的parser指定的函数,把字符串转为日期格式。由于默认的只认"yyyy-MM-dd hh:mm:ss"格式(可以是其它分隔符,并非一定要是'-'),所以如果formatter函数返回的不是这个格式,会报错。
下面是我自己的实现方式:
datetimebox 设置:
[javascript] view plaincopyprint?
//加载日期控件
function loadDate() {
startDTObj = $("#startDate");
endDTObj = $("#endDate");
startDTObj.datetimebox({
showSeconds:false,
formatter: formatDateText,
parser: parseDate
});
endDTObj.datetimebox({
showSeconds:false,
formatter: formatDateText,
parser: parseDate
});
}
[javascript] view plaincopyprint?
/格式化显示的文本
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’
[javascript] view plaincopyprint?
//把时间格式字符串转化为时间
//如下格式
//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]);
}
网上找的别人写的格式化日期的方法,很好用
[javascript] view plaincopyprint?
//为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;
}
完成后效果:
![](http://202.96.138.158/inc/test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201203%2F7%2F0_1331106990X5TJ.gif)
项目里需要显示自定义显示格式,比如只显示yyy,yyyy-mm,yyyy-mm-dd等格式。直接设置formatter参数的话,总是报错。用firefox调试后发现,好像在设置新的日期时
datetimebox控件会调用默认的parser指定的函数,把字符串转为日期格式。由于默认的只认"yyyy-MM-dd hh:mm:ss"格式(可以是其它分隔符,并非一定要是'-'),所以如果formatter函数返回的不是这个格式,会报错。
下面是我自己的实现方式:
datetimebox 设置:
[javascript] view plaincopyprint?
//加载日期控件
function loadDate() {
startDTObj = $("#startDate");
endDTObj = $("#endDate");
startDTObj.datetimebox({
showSeconds:false,
formatter: formatDateText,
parser: parseDate
});
endDTObj.datetimebox({
showSeconds:false,
formatter: formatDateText,
parser: parseDate
});
}
datetimebox控件会调用默认的parser指定的函数,把字符串转为日期格式。由于默认的只认"yyyy-MM-dd hh:mm:ss"格式(可以是其它分隔符,并非一定要是'-'),所以如果formatter函数返回的不是这个格式,会报错。
下面是我自己的实现方式:
datetimebox 设置:
[javascript] view plaincopyprint?
//加载日期控件
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 }); }
[javascript] view plaincopyprint?
/格式化显示的文本
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’
[javascript] view plaincopyprint?
//把时间格式字符串转化为时间
//如下格式
//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: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]); }
网上找的别人写的格式化日期的方法,很好用
[javascript] view plaincopyprint?
//为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;
}
//为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; }
完成后效果:
![](http://202.96.138.158/inc/test.jsp?url=http%3A%2F%2Fhi.csdn.net%2Fattachment%2F201203%2F7%2F0_1331106990X5TJ.gif)
项目里需要显示自定义显示格式,比如只显示yyy,yyyy-mm,yyyy-mm-dd等格式。直接设置formatter参数的话,总是报错。用firefox调试后发现,好像在设置新的日期时
datetimebox控件会调用默认的parser指定的函数,把字符串转为日期格式。由于默认的只认"yyyy-MM-dd hh:mm:ss"格式(可以是其它分隔符,并非一定要是'-'),所以如果formatter函数返回的不是这个格式,会报错。
下面是我自己的实现方式:
datetimebox 设置:
[javascript] view plaincopyprint?
//加载日期控件
function loadDate() {
startDTObj = $("#startDate");
endDTObj = $("#endDate");
startDTObj.datetimebox({
showSeconds:false,
formatter: formatDateText,
parser: parseDate
});
endDTObj.datetimebox({
showSeconds:false,
formatter: formatDateText,
parser: parseDate
});
}
相关文章推荐
- js--easyUI datetimebox 自定义显示格式 .
- easyUI datetimebox 自定义显示格式
- easyUI datetimebox 自定义显示格式
- easyUI datetimebox 自定义显示格式
- easyUI datetimebox 自定义显示格式
- Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个
- EasyUI——DateBox和DateTimeBox的汉化和显示格式修改
- easyui datetimebox修改默认显示格式
- 【EasyUi】自定义日期显示格式
- easyui--datetimebox插件,下拉框的日期不能全部显示,即一个月份中的天数未全部显示
- 修改EasyUI中DateBox和DateTimeBox的格式
- EasyUI的DataGrid日期列(datebox)正确显示json时间格式
- EasyUI Datetimebox 日期时间框 无论选中哪天的日期最后显示的都是当前日期 解决办法
- easyui的datebox和datetimebox的设置输出日期的格式
- 自定义DateTimeInput(时间)控件的显示格式
- Easyui datetimebox 日期格式化成想要的格式
- easyui datetimebox 如何只显示月份
- 自定义EasyUI的datetimebox控件日期时间的显示格式
- easyui datetimebox 如何只显示 月份,不显示具体的数据
- easyui 的 datetimebox 显示为当前时间问题解决方法