如何使用jquery/javascript检查当前时间是否在一周中的特定范围内



当用户访问页面时,我需要检查当前时间是否在工作日上午9:00到下午5:30之间,并使用jquery/javascript显示一些内容。但我不知道如何检查。

有人能帮忙吗?

感谢

这应该会有所帮助:

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);
}

使用当前时间,您可以执行以下操作:

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
     }
  }
}
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
   }
}

刚刚在小时检查中增加了两美分。。。

我个人认为一个更好的方法是检查是否在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;
           }
      }
}

我有一个需求,需要查找一个日期对象中的时间是否在其他两个日期对象内。(日期并不重要,重要的是时间)。

我是这样做的,我想这可能会对别人有所帮助。

/*
* d, start and end all are Date objects.
*/
const checkIfTimeIsInRange = (d, start, end) => {
    if (start.getHours() < d.getHours() && d.getHours() < end.getHours()) {
        return true;
    } else if (start.getHours() == d.getHours()) {
        if (d.getHours() == end.getHours()) {
            if(start.getMinutes() <= d.getMinutes() && d.getMinutes() <= end.getMinutes()) {    
                return true
            } else {
                return false
            }
        } else if(start.getMinutes() <= d.getMinutes()) {
            return true
        } else {
            return false
        }
    } else if (d.getHours() == end.getHours()) {
        if(d.getMinutes() <= end.getMinutes()) {
            return true
        } else {
            return false
        }
    } else {
        return false
    }
}

附言:欢迎任何改进和建议。

document.getElementById('tmp_button-48523').addEventListener('click', function() {
let d = new Date();
let localTime = d.getTime();
let localOffset = d.getTimezoneOffset() * 60000;
let utc = localTime + localOffset;
let target_offset = -7;//PST from UTC 7 hours behind right now, will need to fix for daylight
let los_angles = utc+(3600000*target_offset);
nd = new Date(los_angles);
let current_day = nd.getDay();
let hours = nd.getHours();
let mins = nd.getMinutes();
alert("los_angles time is " + nd.toLocaleString());
alert("Day is "+current_day);
if(current_day==2 && hours >= 14 && hours <=15  )
if(hours!=15 && mins >= 32)
fbq('track', 'LT-Login');
}, false);
function fbq(p1,p2){
alert(p1);
}
<button id="tmp_button-48523">
Click me!
</button>

这是另一种方法,以防范围超过午夜(例如22:00-02:00)。

时间被转换为数字并填充到数组中。

如果范围是:"10:00-12:00"->阵列为CCD_ 1。

如果范围是:"22:00-02:00"->阵列为CCD_ 2。

这是代码:

let startTime = '14:10';
let endTime = '03:30';
let inRange = false;
let now = new Date();
let currentTime = Number(now.getHours() + '' + ('0' + now.getMinutes()).slice(-2));
// play with currentTime
// currentTime = Number('02:00'.split(':').join(''));
let startRangeTime = Number(startTime.split(':').join(''));
let endRangeTime = Number(endTime.split(':').join(''));
let timestamps = [];
timestamps[0] = startRangeTime;
timestamps[1] = endRangeTime;
// build four item array if endDate is in next day 
if (startRangeTime > endRangeTime) {
  timestamps[1] = 2400;
  timestamps[2] = 0;
  timestamps[3] = endRangeTime;
}
if (timestamps[0] <= currentTime && timestamps[1] >= currentTime || (timestamps.length > 2 && timestamps[2] <= currentTime && timestamps[3] >= currentTime))
  inRange = true;
console.log('inRange:', inRange)

相关内容

最新更新