1. 程式人生 > 其它 >js根據開始、結束時間判斷當前是否在營業時間內

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