需求是做一个预约功能 框架是用mint-ui为基础
选择的日期可以是当天但是以当前时间为基础 不可以是过去时间
结束时间必须大于开始时间
以下是代码
先调用checkDate
//选择的年月日不可以大于当前年月日
//controldate参数是传入当前选择的时间
function checkDate(controldate) {
// let controldate;
// controldate = document.getElementById("sendDate").value;
if (controldate == "") {
alert('日期不能为空');
return false;
} else {
var day = new Date();
var Year = 0;
var Month = 0;
var Day = 0;
var CurrentDate = "";
//初始化时间
Year = day.getFullYear();
Month = day.getMonth() + 1;
Day = day.getDate();
CurrentDate += Year + "-";
if (Month >= 10) {
CurrentDate += Month + "-";
}
else {
CurrentDate += "0" + Month + "-";
}
if (Day >= 10) {
CurrentDate += Day;
}
else {
CurrentDate += "0" + Day;
}
//alert(CurrentDate);//当前日期
var startDate = new Date(CurrentDate.replace("-", ",")).getTime();
var endDate = new Date(controldate.replace("/", ",")).getTime();
if (startDate > endDate) {
// alert('选择日期不能小于当前日期!');
// document.getElementById("sendDate").focus();
return false;
} else {
return true;
}
}
}
再调用timeData
//传值 日期格式1997/1/1 时间格式14:05
function timeData(pickerData,pickerTime,pickerTimeEnd) {
//获取当前年月日 时间和分钟
var year = new Date().getFullYear();
var month = new Date().getMonth() + 1;
var day = new Date().getDate();
var hours = new Date().getHours();
var minutes = new Date().getMinutes();
//选择日期 开始时间 结束时间
var pickerData = pickerData.split('/');
var pickerTime = pickerTime.split(':');
var pickerTimeEnd = pickerTimeEnd.split(':');
var dataFlg = false;
//判断当前选择年份是否相等当前年份
if (pickerData[0] == year) {
//判断当前选择月份是否相等当前月份
if (pickerData[1] == month) {
//选择日 等于当前日
if (pickerData[2] == day) {
// 判断开始小时的 时 是否小于或者等于当前小时
if (pickerTime[0] < hours) {
//小于的话报错
dataFlg = true
}
//如果等于当前小时需要判断分钟
else if (pickerTime[0] == hours) {
//选择的分钟是否 小于等于当前分钟
if (pickerTime[1] <= minutes) {
//满足的话报错
dataFlg = true
}
}
}
}
}
//判断 结束的小时 小于开始的小时
if (pickerTimeEnd[0] < pickerTime[0]) {
dataFlg = true
}
//如果结束小时等于开始小时 就继续判断分钟
else if (pickerTimeEnd[0] == pickerTime[0]) {
if (pickerTimeEnd[1] <= pickerTime[1]) {
dataFlg = true
}
}
//true 为时间段不正确 false为时间段正确
return dataFlg
}
网友评论