我需要检查时间是否在开始和结束时间之间。所有时间都在同一天,因此日期并不重要。我可以比较几小时,但我不确定如何在开始和结束时间内添加分钟。
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; }
答案 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
}