在javascript中检查两个值之间的时间是否为小时和分钟

时间:2018-04-04 15:46:10

标签: javascript time

我需要检查时间是否在开始和结束时间之间。所有时间都在同一天,因此日期并不重要。我可以比较几小时,但我不确定如何在开始和结束时间内添加分钟。

var thedate = new Date(); 
var dayofweek = thedate.getUTCDay(); 
var hourofday = thedate.getUTCHours(); 
var minutesofday = date.getMinutes();
function inTime() { if (dayofweek != 0 && dayofweek != 7 && (hourofday > 13 && hourofday < 20)) { return true; } return false; } 

如果我想检查时间是否在13:05和19:57之间,我如何将分钟添加到我的inTime函数中?如果我将它们添加到if语句,它将无法工作:

 function inTime() { if (dayofweek != 0 && dayofweek != 7 && ((hourofday > 13 && minutesofday > 5) && (hourofday < 20 && minutesofday < 57))) { return true; } return false; } 

3 个答案:

答案 0 :(得分:2)

如果14:04 4您的情况失败,5更小 const start = 13 * 60 + 5; const end = 19 * 60 + 57; const date = new Date(); const now = date.getHours() * 60 + date.getMinutes(); if(start <= now && now <= end) alert("in time"); 。最简单的可能就是花一整天的时间:

{{1}}

答案 1 :(得分:0)

如果您说要检查时间“现在”是否在两次之间,您可以将这些时间表示为分钟 - 从午夜开始(hours * 60 + minutes),并且检查非常简单。< / p>

例如,是在上午8:30(含)和下午5:00之间。 (不包括):

var start =  8 * 60 + 30;
var end   = 17 * 60 + 0;

function inTime() {
  var now = new Date();
  var time = now.getHours() * 60 + now.getMinutes();
  return time >= start && time < end;
}

console.log(inTime());

以上使用当地时间;如果你想检查UTC,只需使用等效的UTC方法。

答案 2 :(得分:-1)

将时间转换为毫秒,然后您可以轻松比较。

简短版本:

if(timeToCheck.getTime() >= startTime.getTime() &&
        timeToCheck.getTime() <= endTime.getTime()) {
    // ...
}

OR:

let startTimeMilli = startTime.getTime();
let endTimeMilli = endTime.getTime();
let timeToCheckMilli = timeToCheck.getTime();

// change >= to > or <= to < as you need
if (timeToCheckMilli >= startTimeMilli && timeToCheckMilli <= endTimeMilli) {
    // do your things
}