4

我正在尝试创建一个布尔函数来检查当前日期/时间是否是工作时间。现在知道除了周五和周六外,每周的工作时间是上午 9 点到下午 5 点,我正面临着我提出的问题。我认为我的代码可以很好地检查几天,但我也无法让它在几个小时内工作。这是我的代码:

var dayOfWeek = now.getDay();
//weekday  0==Sunday 1==Monday 2==Tuesday 3==Wednesday 4==Thurs 5==Friday 6==Sat
//Not Friday or Saturday 
if ((dayOfWeek != 5) && (dayOfWeek != 6)){

   if (now.getHours() >= 9 && now.getHours() < 17 ) {
      //Within working hours now."
   }
   else
   {
    //After working hours."
   }
}

}

这是我在 JSFiddle 上的 HTML 代码测试:

http://jsfiddle.net/jp9BW/ 更改我的 PC 时钟有效。我的测试用例是从下午 5 点开始的工作日。这就是问题发生的时候。else 块没有被命中。

4

2 回答 2

6

我相信,这应该足够了

function isWorkingHour(now) {
    return now.getDay() <= 4 && now.getHours() >= 9 && now.getHours() < 17;
}
于 2013-10-05T10:29:01.880 回答
3

我会这样做

function checkOpeningTimes() {
    let date = new Date(); // current time
    let hours = date.getHours();
    let day = date.getDay();
    let openingDays = [ 0, 1, 2, 3, 4 ];
    return openingDays.includes( day ) && hours >= 9 && hours <= 17;
}
于 2013-10-05T10:09:52.550 回答