/**
* 校验时间范围
*
* @export
* @param {string} date
* @param {string|number} type
* @return {boolean}
*
*/
export function isTimeRange(date,type='day'){
let nowDate = new Date()
let oldDate = new Date(date)
let nowTimestamp = new Date(nowDate.toLocaleDateString()).getTime()
let timestamp = new Date(oldDate.toLocaleDateString()).getTime()
let oneDay = 60*60*24*1000
if(typeof type === 'number' && type%1 === 0){
//前几天内
if(oldDate.getTime() > nowDate.getTime()){
return false
}
return timestamp >= (nowTimestamp - type*oneDay)
}else{
switch(type){
case 'second':
case 'minute':
case 'hour':
//前几秒/几分/几时
// 注释:返回值类型number,符合num、不符合0
let minute = 1000*60
let hour = minute*60
let diffValue = (nowDate.getTime() - oldDate.getTime())
let num = 0
if(type=='second'){
num = parseInt(diffValue/1000)
}else if(type=='minute'){
num = parseInt(diffValue/minute)
}else{
num = parseInt(diffValue/hour)
}
if(num >= 1) return num
return 0
case 'day':
//是否当天
return timestamp >= nowTimestamp && timestamp < (nowTimestamp + oneDay)
case 'week':
//是否本周
let startWeek = nowTimestamp - (nowDate.getDay()-1)*oneDay
let endWeek = nowTimestamp + (8-(nowDate.getDay()==0?7:nowDate.getDay()))*oneDay
return timestamp >= startWeek && timestamp < endWeek
case 'month':
//是否本月
let startMonth = nowTimestamp - (nowDate.getDate()-1)*oneDay
let endMonth = new Date(nowDate.getFullYear(),nowDate.getMonth()+1,1).getTime()
return timestamp >= startMonth && timestamp < endMonth
case 'year':
//是否本年
let startYear = new Date(nowDate.getFullYear(),0).getTime()
let endYear = new Date(nowDate.getFullYear()+1,0).getTime()
return timestamp >= startYear && timestamp < endYear
default:
return false
}
}
//注意:newDate('yyyy-MM-dd')不传时间 使用'-'默认初始时间为08:00:00,'/'默认初始时间为00:00:00
}
js 时间范围校验
于 2022-04-02 17:24:26 首次发布