JavaScript

时间:2017-08-25 17:26:41

标签: javascript date time

说我尝试运行类似的脚本

let currentTime = new Date();
let currentDay = currentTime.getDay();
let currentHour = currentTime.getHours(); // 0-23.

if ( currentDay === 0 || currentDay === 1 || currentDay === 2 || currentDay === 3 || currentDay === 4 || currentDay === 5 && currentHour < 12) {

Do stuff...

}

只要currentHour < 12存在(最终),它就无法工作。然而,当我删除它时,它没有问题。

我也尝试过(虽然我不知道这不重要):

if ( currentDay !== 6 || currentDay !== 5 && currentHour < 12 ) {

Do stuff...

}

同样,如果我删除currentHour&lt; 12,脚本有效。

在当前版本的JavaScript中组合当前日期和当前小时是否可以进行调整?

注意

我只需要星期五&& currentHour < 12

1 个答案:

答案 0 :(得分:1)

在第一个示例中,如果您想将currentHour<12currentDay==5与指标&&进行比较,则可以使用以下代码:

if ( currentDay === 0 || currentDay === 1 || currentDay === 2 || currentDay === 3 || currentDay === 4 || currentDay === 5 && currentHour < 12) {

Do stuff...

}

但是,如果您想将currentHour < 12与所有currentDay进行比较,则可以使用以下代码:

if ( (currentDay === 0 || currentDay === 1 || currentDay === 2 || currentDay === 3 || currentDay === 4 || currentDay === 5) && currentHour < 12) {

Do stuff...

}

然而,正如@RobG所说,这样做最为漂亮:

if ( currentDay<=5 && currentHour < 12) {

Do stuff...

}

修改

当然,如果您只想将currentDaycurrentHour进行比较,您可能会这样做:

if ( currentDay <= 6 || (currentDay === 5 && currentHour < 12)) {

Do stuff...

}

此处,operator()将currentDaycurrentHour分组,并在没有其他语句的情况下对它们进行比较。

在此示例中,运算符()对所有currentDay进行分组,比较它们(如if条件返回布尔值),然后将布尔值与currentHour < 12进行比较(或下一个声明)。

根据我对您的问题的理解,您有一个问题是为了比较您条件中的所有陈述。如果您有一些问题,请告诉我一个评论。

有关运营商的详情,请参阅this页面。