Как проверить, находится ли текущее время в определенном диапазоне в день недели, используя jquery / javascript? - PullRequest
5 голосов
/ 31 января 2012

Когда пользователь заходит на страницу, мне нужно проверить, падает ли текущее время между 9:00 и 17:30 в будний день, и отобразить что-нибудь с помощью jquery / javascript. Но я не уверен, как это можно проверить.

Может ли кто-нибудь помочь, пожалуйста?

Спасибо

Ответы [ 4 ]

16 голосов
/ 31 января 2012

Надеюсь, это поможет:

function checkTime() {
    var d = new Date(); // current time
    var hours = d.getHours();
    var mins = d.getMinutes();
    var day = d.getDay();

    return day >= 1
        && day <= 5
        && hours >= 9 
        && (hours < 17 || hours === 17 && mins <= 30);
}
2 голосов
/ 31 января 2012
var now = new Date();
var dayOfWeek = now.getDay();
if(dayOfWeek > 0 && dayOfWeek < 6){
   //falls on a weekday
   if (now.getHours() > 9 && (now.getHours() < 17 && now.getMinutes() < 30)) {
      //it's in schedule
   }
}
1 голос
/ 01 октября 2015

Только что добавили два цента к проверке часа ...

Лично я считаю, что лучше было бы проверить, находится ли он в диапазоне a: b - c: d ...

// check if h:m is in the range of a:b-c:d
// does not support over-night checking like 23:00-1:00am
function checkTime (h,m,a,b,c,d){
      if (a > c || ((a == c) && (b > d))) {
          // not a valid input
      } else {
           if (h > a && h < c) {
                return true;
           } else if (h == a && m >= b) {
               return true;  
           } else if (h == c && m <= d) {
               return true;
           } else {
                return false;
           }
      }
}
1 голос
/ 31 января 2012

Используя текущее время, вы можете сделать что-то вроде этого:

var now = new Date(),
    day = now.getDay(),
    hours = now.getHours();

//Check if day is Mon-Fri
if(0 < day < 6) {
  //check between 9am and 5pm
  if(9 <= hours <= 17) {
     if(hours !== 17 || now.getMinutes() <= 30) {
          //your jQuery code here
     }
  }
}
...