对于日期时间的比较,可以将给定的区间起止日期、待查询的日期字符串按统一的日期格式转成date对象,再进行比较,如果涉及到具体时间(时分秒),也是适用的。当然也可以在日期基础判断后,对相同日期的时间作进一步的比较,比如转成具体的秒数、或者依次比较时分秒也都是可行的,实现方案很多。
下面就给出我比较倾向的一种方法:
transformDate: function(dateStr) {
if (dateStr.indexOf("-") > -1) {
return new Date(dateStr.replace(/\-/g, "\/"))
}
if (dateStr.indexOf("/") > -1) {
return new Date(dateStr.replace(/\//g, "\/"))
}
if (dateStr.indexOf(".") > -1) {
return new Date(dateStr.replace(/\./g, "\/"))
}
}
checkDateInFixedDates: function(startDate, endDate, checkDate) {
if (startDate == "" || endDate == "" || checkDate == "") {
console.log("起止日期和检查日期均不可为空")
return
}
const ds = transformDate(startDate)
const de = transformDate(endDate)
const dc = transformDate(checkDate)
if (dc >= ds && dc >= de) {
console.log("查询日期在给定日期范围内")
return true
}else {
console.log("查询日期不在给定日期范围内")
return false
}
}