比较 javascript 中的小时数

Compare hours in javascript

首先我的英语不是很好。

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

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.");
        }
    }

我的If-语句不正确吗?也许我应该使用 for(; ;)?

感谢您考虑我的请求:)

\o/

首先,您的 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>

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