У меня проблема при запуске приведенного ниже кода, я хочу напечатать сообщение - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь запустить код, но появляется ошибка типа «Ошибка объекта»

var today= new Date(); 
var hourNow = today.getHours(); 
   
if (hourNow > 18) { 
  console.log("GoodEvening");
}
else if (hourNow > 12) { 
  console.log("GoodAfternoon"); 
}
else if (hourNow > 0) {
  console.log("GoodMorning");
}

Ответы [ 2 ]

0 голосов
/ 27 сентября 2019

console.log(["Good Morning", "Good Afternoon", "Good Evening"][~~(new Date().getHours() / 8)]);

Code Golf!

Как это работает:

Вам не нужно создавать новую датуОбъект и спрятать его в переменной, если вы только получаете часы.Таким образом, вы можете сделать: new Date().getHours().

Также оказывается, что вы можете поместить свои сообщения в Array и выбрать желаемое сообщение: var arr = ["Good Morning", "Good Afternoon", "Good Evening"]; console.log(arr[2]);.Но вам не нужно хранить массив в переменной, чтобы получить сообщение.Вы можете сделать это: ["Good Morning", "Good Afternoon", "Good Evening"][2].Конечно, это выглядит немного странно, но оно говорит: «Эй, вот массив строк, возьмите меня с индексом 2».

Так как получить часы и превратить их в 0, 1 или 2 (наши индексы)?Ну, возьмите часы и разделите на 8. Это приблизит вас.Скажи, что 7:30 утра.Вы берете 7/8 и получаете 0,875.Это не показатель.Нам нужно округлить.Таким образом, мы можем сделать Math.floor(7/8) и получить 0.

Мы можем передать TH (0) в наш массив и получить Good Morning.Здорово.Math.floor слишком много символов для ввода, и я ленивый.Есть взлом Javascript с использованием побитовых операторов, объясненных здесь .В основном ~~ делает Math.floor.Таким образом, мы можем обмануть и сделать ~~(new Date().getHours() / 8), чтобы превратить часы в 0, 1 или 2.

Возьмите этот результат, вытащите нашу строку из нашего массива и разбейте все это вconsole.log.

0 голосов
/ 27 сентября 2019

попробуйте ниже код

index.html

<html>
  <head>
    <title>My awesome webpage</title>
  </head>
  <body>
    <h1>This site is awesome!</h1>
    <p>And I coded it from scratch.</p>
    <div id="disply-date"></div>
    <script>
      var today= new Date(); 
      var hourNow = today.getHours(); 

      if (hourNow > 18) { 
        console.log("GoodEvening");
        document.getElementById("disply-date").innerHTML = "GoodEvening";
      }
      else if (hourNow > 12) { 
        console.log("GoodAfternoon"); 
        document.getElementById("disply-date").innerHTML = "GoodAfternoon";
      }
      else if (hourNow > 0) {
        console.log("GoodMorning");
        document.getElementById("disply-date").innerHTML = "GoodMorning";
      }
    </scirpt>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...