LayDate计算两个input的时间范围限制
在项目中有时候会遇到时间范围的限制的需求,也就是常说的,开始时间和结束时间,而结束时间要大于开始时间这一类需求,laydate提供了这样的功能,但是由于文档在这一块却并不完善。
下面是我找到的一种方法。
//开始时间
var start = laydate.render({
elem: '#startTime',
min: '1900-1-1 00:00:00',
max: '2099-6-16 23:59:59',
trigger: 'click', //采用click弹出
done: function (value, date, endDate) {
end.config.min = {
year: date.year,
month: date.month - 1,
date: date.date,
// hours: date.hours,
// minutes: date.minutes,
// seconds: date.seconds
}; //开始日选好后,重置结束日的最小日期
end.config.value = {
year: date.year,
month: date.month - 1,
date: date.date,
// hours: date.hours,
// minutes: date.minutes,
// seconds: date.seconds
}; //将结束日的初始值设定为开始日
//计算时间差
if ($("#endTime").val()){
var s=new Date(value);
var e=new Date($("#endTime").val());
var time=(e.getTime()-s.getTime())/1000/60/60/24+1;
$("#leaveDuration").val(time);
}
}
});
//结束时间
var end = laydate.render({
elem: '#endTime',
// min: '1900-1-1 00:00:00',
// max: '2099-6-16 23:59:59',
// trigger: 'click', //采用click弹出
done: function (value, date, endDate) {
start.config.max = {
year: date.year,
month: date.month - 1,
date: date.date,
// hours: date.hours,
// minutes: date.minutes,
// seconds: date.seconds
}; //结束日选好后,重置开始日的最大日期
//计算时间差
if ($("#startTime").val()){
var e=new Date(value);
var s=new Date($("#startTime").val());
var time=(e.getTime()-s.getTime())/1000/60/60/24+1;
$("#leaveDuration").val(time);
}
}
});