今天使用easyui的datebox,想获取到八位数日期比较一下的,结果发现2018年5月1日,显示为:201851。
这样的结果显然满足不了我的需求,这样比较的话,2018511 > 201861。五月十一大于六月一号?七位数肯定大于六位数嘛。比较是可以,但是结果不对。
稍微研究了一下发现了一个简单点的方法,判断一下就可以了。方法不难,可以实现需求。
onSelect: function(date){
var m = date.getMonth()+1 + '';
if(m.length == 1) {
m = "0" + m;
}
var d = date.getDate() + '';
if(d.length == 1) {
d = "0" + d;
}
var data ='' + date.getFullYear() + m + d;
$.messager.alert("yyksrq",data);
}
2
注意:var m = date.getMonth()+1 + '';
最后要加一个字符串,不然是数字类型的,没有length属性,当然你也可以直接用数字跟10比较,小于10的都加个0;
上面的方法应该是可以的,但是用于比较日期的话,可能不行;下面贴一下我程序中用到的代码:
$(function() {
//日期框失去焦点时触发
$('#yyzzrq').datebox({
onSelect: function(date){
var zzrq = formatterDate($("#yyzzrq").datebox('getValue'));
var ksrq = formatterDate($("#yyksrq").datebox('getValue'));
console.log(ksrq);
console.log(zzrq);
if(ksrq == 'NaN' || ksrq == '') {
$.messager.alert('Warning',"请先选择运营开始日期!");
return false;
}else if(ksrq > zzrq) {
$.messager.alert('Warning',"开始日期应小于终止日期!");
$("#yyzzrq").combo('setText','');
return false;
}
}
});
});
//格式化时间 date: 01/05/2019
function formatterDate(date) {
var arr = date.split('/');
var y = arr[2];
var m = arr[1];
var d = arr[0];
return y + m + d;
}
0
两个日期都是手动获取,然后写了个公共方法对这个时间格式化一下,就可以比较了,而且这样得到的月份本身就是两位数。