比较javascript中的小时数

时间:2018-03-11 22:34:41

标签: javascript html login

首先,我的英语不是很好。

我想用HTML编写一个脚本,我可以在21:00(晚上9点)到早上6点之间进行登录访问。

function myFunc() {

        var today = new Date();
        var h = today.getHours();

        var stunde = [21, 22, 23, 1, 2, 3, 4, 5, 6];

        var s1 = document.getElementById("field1").value;
        var s2 = document.getElementById("field2").value;

        if (h == stunde) {
            if (s1 == s2) {
                if (s1 != '' && s2 != '') {
                    window.location.href = 'default.html';
                }
            } else window.alert("Veuillez insérer les données correctement.");
        }
    }

我的如果 - 声明不正确吗?也许我应该使用作为(;;)

感谢您考虑我的要求:)

\ O /

2 个答案:

答案 0 :(得分:1)

首先,您遗漏了{声明的else

添加完之后,您需要确保在输入字段后才能实际触发逻辑。为此,我将功能转移到了一个单击按钮时调用的函数。

当时间无效时,您可能还需要else条件;目前在这种情况下没有任何事情发生。

最后,第一个将时间与数组进行比较的条件需要检查数值数组中,并不完全等于数组本身。这可以使用if (stunde.indexOf(h) > -1)(或更直观的ES6方法 .includes() )来完成。

以下都可以看到:

var today = new Date();
var h = today.getHours();

var stunde = [21, 22, 23, 1, 2, 3, 4, 5, 6];

var s1 = document.getElementById("field1").value;
var s2 = document.getElementById("field2").value;

document.getElementsByTagName("button")[0].addEventListener("click", function() {
  if (stunde.indexOf(h) > -1) {
    if (s1 == s2) {
      if (s1 != '' && s2 != '') {
        window.location.href = 'default.html';
      }
    } else {
      window.alert("Veuillez insérer les données correctement.");
    }
  } else {
     window.alert("Time not valid.");
  }
});
<input id="field1">
<input id="field2">
<button>Go</button>

答案 1 :(得分:1)

if (h == stunde)应该成为if (stunde.includes(h))

相关问题