在JavaScript中比较两个时间

3

如果当前时间符合以下情况之一,我需要运行特定的逻辑:

  1. 早于上午7点
  2. 在上午7点至9点之间
  3. 在上午9点到晚上7点之间
  4. 晚于晚上7点

我发现很难判断当前时间是否在某个时间段内:

if(currentHour < 7){
    console.log("Time is before than 7 am :" + 0 );
}
else if (currentHour > 19){
    console.log("Time is after than 7 pm :" + 12148 );
}
else if(//Compare between the hours)

请提供适当的代码。

3个回答

1
if (currentHour >= 7 && currentHour <=19) {

}

1
如果您只处理单个区间,您可以像这样使用 逻辑AND&&):
if(currentHour >= 7 && currentHour <= 9) {...}

由于你正在处理多个连续的区间,因此可以通过使用else语句来简化逻辑,因为如果前一个if条件为真,则它们不会运行:

if(currentHour < 7) { //less than 7am
}
else if(currentHour <= 9) { //between 7am and 9am
}
else if(currentHour <= 19) { //between 9am and 7pm
}
else { //greater than 7pm
}

(根据您是否需要包含或排除,您可能需要更改<<=。)

0
尝试下面的代码。Date类的getHours()方法以24小时格式返回当前小时数。(例如,下午4点是16,晚上7点是19等等...)
var currentHour = new Date().getHours();

if (currentHour < 7) {
   console.log("less than 7 am");
}

if (currentHour >= 7 && currentHour <=9) {
   console.log("between 7am and 9 am");
}

if (currentHour >= 9 && currentHour <= 19) {
   console.log("between 9am and 7pm");
}

if (currentHour > 19) {
   console.log("greater than 7pm");
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接