js判断当前时间是否在指定范围内

 一、js判断当前时间是否在指定范围内

利用 js 的 Date 对象,获得三个时间戳,分别为当前时间、开始时间、结束时间,通过比对当前时间是否在开始时间和结束时间之间,来判断是否在一个时间区间内

方法一:

function isTimeInRange(startTime:any, endTime:any) {
            // 获取当前时间、开始时间、结束时间的时间戳
            const now = new Date();
            const currentTime = now.getTime();
            const start = new Date();
            const end = new Date();
            start.setHours(startTime.substring(0, 2), startTime.substring(3, 5), 0);
            end.setHours(endTime.substring(0, 2), endTime.substring(3, 5), 0);
            const startTimeMillis = start.getTime();
            const endTimeMillis = end.getTime();
            return currentTime >= startTimeMillis && currentTime <= endTimeMillis;
        }
// 调用方法 当前时间是否在8:00-24:00之间
isTimeInRange('08:00','24:00')

方法二: 

// 方法
function checkAuditTime(startTime, endTime){
    // 获取当前时间
    const date  = new Date()
    // 获取当前时间的年月日
    const dataStr = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} `
 
    // 获取开始时间、结束时间、现在时间的时间戳
    let startDate = new Date(dataStr + startTime).getTime()
    let endDate = new Date(dataStr + endTime).getTime()
    let nowDate = date.getTime()
 
    const s = startDate > endDate // 判断开始时间否大于结束时间
 
    if(s) [startDate, endDate] = [endDate, startDate] // 若开始时间否大于结束时间则交换值
 
    // 判断现在的时间是否在开始时间和结束时间之间,若s为true则结果取反
    if(nowDate > startDate && nowDate < endDate){
        return s ? false : true
    }else{
        return s ? true : false
    }
}
 
// 使用
console.log(checkAuditTime('08:00', '20:00'));

 二、js判断当前日期是否指定日期之后

同样是通过转换为时间戳进行判断

function judge(data:string) {
    let compareData = new Date().getTime();
    let referenceData = new Date(data).getTime();
    let power = compareData>=referenceData ? 'true' : 'false';
    return power
}
// console.log(judge('2023.1.1')) //true就是在2023.1.1之后,false就是在之前

上面方法也可以构造成传递两个参数,这样就可以判断某个日期是否在指定日期之后

function judge(one,data) {
    let compareData = new Date(one).getTime();
    let referenceData = new Date(data).getTime();
    let power = compareData>=referenceData ? 'true' : 'false';
    return power
}
// console.log(judge('2022.1.4','2023.1.1')) 
// true就是在2023.1.1之后,false就是在之前

你可能感兴趣的:(前端,javascript,开发语言)