js根據開始、結束時間判斷當前是否在營業時間內
//判斷營業時間 starStr=>開始時分 endStr=>結束時分
var businessTime = function(starStr = '7:00', endStr = '23:00') {
try {
if (!(starStr&&endStr)) {
return true
}
let starArr = starStr.split(':'),
endArr = endStr.split(':');
starArr[0] = Number(starArr[0]);
starArr[1] = Number(starArr[1]);
endArr[0] = Number(endArr[0]);
endArr[1] = Number(endArr[1]);
// let txt='2022/03/31 23:00:01';
let nowVal = (new Date()).getTime(); //現在的時間戳
let starVal = (new Date()).setHours(starArr[0], starArr[1], 0, 0); //開始時間的時間戳
let endVal = 0; //結束時間的時間戳
if (endArr[0] <= starArr[0]) { //結束時間小於開始時間情況下,為第二天停業 天數+1
let now = new Date();
now.setDate(now.getDate() + 1);
endVal = now.setHours(endArr[0], endArr[1], 0, 0);
} else {
endVal = (new Date()).setHours(endArr[0], endArr[1], 0, 0);
}
// 返回當前時間戳是否在時間範圍內
return nowVal >= starVal && nowVal < endVal
} catch (e) {
return true
}
}
// 呼叫 假設現在時間9:00
businessTime()//true
businessTime('10:00','23:00')//false
businessTime('10:00','9:30')//true
businessTime('09:00','23:30')//true
businessTime('10:00','9:00')//false