Используя момент. js, чтобы определить, находится ли текущее время (в часах) между определенными часами - PullRequest
0 голосов
/ 29 мая 2020

Я работаю над функцией, которая будет приветствовать своих пользователей приветствием с учетом времени (Доброе утро, День, Вечер, Ночь). Вот сценарий, который я сделал

import moment from "moment";

function generateGreetings(){
    if (moment().isBetween(3, 12, 'HH')){
        return "Good Morning";
    } else if (moment().isBetween(12, 15, 'HH')){
        return "Good Afternoon";
    }   else if (moment().isBetween(15, 20, 'HH')){
        return "Good Evening";
    } else if (moment().isBetween(20, 3, 'HH')){
        return "Good Night";
    } else {
        return "Hello"
    }
}

$("greet")
.css({
    display: "block",
    fontSize: "4vw",
    textAlign: "center",
    })
.text(generateGreetings() +", name")

Но он просто не работает и просто возвращает "Hello". Я также пробовал использовать

var currentTime = moment();
var currentHour = currentTime.hour();

и использовать currentHour для замены moment() внутри функции, но когда я это делаю, сайт просто исчезает. Надеюсь, что у кого-нибудь есть представление о том, что мне делать, чтобы исправить эту проблему.

Ответы [ 2 ]

2 голосов
/ 29 мая 2020

Вы неправильно используете moment().isBetween(). Вы можете увидеть правильное использование метода из здесь . Для ваших требований нет необходимости использовать этот метод isBetween. Вы можете просто получить час, а затем сравнить его с условием if.

Вы можете изменить свой метод, как показано ниже.

function generateGreetings(){

  var currentHour = moment().format("HH");

  if (currentHour >= 3 && currentHour < 12){
      return "Good Morning";
  } else if (currentHour >= 12 && currentHour < 15){
      return "Good Afternoon";
  }   else if (currentHour >= 15 && currentHour < 20){
      return "Good Evening";
  } else if (currentHour >= 20 && currentHour < 3){
      return "Good Night";
  } else {
      return "Hello"
  }

}
0 голосов
/ 29 мая 2020

@ Таким образом

или вы можете использовать

moment().hour()

вместо

moment().format('HH')(
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...