Условное утверждение не работает должным образом - PullRequest
0 голосов
/ 03 апреля 2020

В зависимости от времени суток. Я пытаюсь отобразить утром, днем ​​или вечером пользователю, используя метод JavaScript (new Date ()). Но то, что я получаю в ответ - это просто (еще) утверждение. Могу ли я получить совет относительно того, что я делаю неправильно?

const mainHeader = document.getElementById("header");

var greetings = () => {
    var today = new Date();
}

window.onload= (e) => {
    greetings;


    if(today >= 1 && today < 12) {
        mainHeader.innerHTML = "<h3>Good Morning! And Welcome To Guess The Number</h3>"
        console.log("Morning: between 1 and 12");
    }  else if(today >= 12 && today < 17) {
            mainHeader.innerHTML = "<h3>Good Afternoon! And Welcome To Guess The Number</h3>"
            console.log("Afternoon: between 12 and 17");
    }  else if(today >= 17 && today <= 24) {
        mainHeader.innerHTML = "<h3>Good Evening! And Welcome To Guess The Number</h3>"
        console.log("Evening: between 17 and 24");
    }  else {
            mainHeader.innerHTML = "<h3>Welcome to Guess The Number</h3>"
            console.log("No time zone");
    }
}

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Вам необходимо вернуть час из greetings(), а затем присвоить его переменной в функции window.onload.

const mainHeader = document.getElementById("header");

var greetings = () => {
  var today = new Date();
  return today.getHours();
}

window.onload = (e) => {
  var today = greetings()
  if (today >= 1 && today < 12) {
    mainHeader.innerHTML = "<h3>Good Morning! And Welcome To Guess The Number</h3>"
    console.log("Morning: between 1 and 12");
  } else if (today >= 12 && today < 17) {
    mainHeader.innerHTML = "<h3>Good Afternoon! And Welcome To Guess The Number</h3>"
    console.log("Afternoon: between 12 and 17");
  } else if (today >= 17 && today <= 24) {
    mainHeader.innerHTML = "<h3>Good Evening! And Welcome To Guess The Number</h3>"
    console.log("Evening: between 17 and 24");
  } else {
    mainHeader.innerHTML = "<h3>Welcome to Guess The Number</h3>"
    console.log("No time zone");
  }
}
<div id="header">
</div>
0 голосов
/ 03 апреля 2020

Вы никогда не определите today в функции onload (даже если вы вызвали приветствие, сегодня не будет определено b / c var является областью действия функции). Вместо этого замените greetings; на var today = new Date().getHours(); и удалите функцию приветствия.

Если вы все еще хотите сохранить greetings как функцию, вы можете заменить ее на var greetings = ()=>new Date().getHours(); и заменить greetings; на var today= greeting();

...