Извлечение времени в моментальном объекте для использования с функцией inBetween - PullRequest
1 голос
/ 01 июля 2019

Я хочу получить текущее время и использовать его в моем условном операторе if, чтобы увидеть, находится ли оно в промежутке времени. Я пытался использовать moment().isBetween(nine, ten), где девять и десять являются строками (точно так же, как сказано, чтобы использовать в документах), но moment () также возвращает день. Я также пробовал moment().format("hh:mm A").isBetween(nine, ten), но формат превращает все в строку и, очевидно, не может использовать isBetween. Как я могу извлечь текущее время и использовать его в isBetween? Если в vanilla JS проще использовать объект Date, я весь в ушах.

// what I've tried. example 1
let nine = "9:00"
let nineFormat = moment(nine, "HH:mm A").format("hh:mm A");
let ten = "10:00"
let tenFormat = moment(ten, "HH:mm A").format("hh:mm A");

if(moment().isBetween(nineFormat,tenFormat){
     console.log("I'm here");
}

//I've also tried but doesn't work because test is a string. example 2
let test = moment().format("hh:mm A");

if(test.isBetween(nineFormat,tenFormat){
     console.log("I'm here");
} 

Вот ошибка, которую я получаю, например, 1

Предупреждение об устаревании: предоставленное значение не соответствует распознанному формату RFC2822 или ISO. момент конструирования возвращается к js Date (), который не надежен во всех браузерах и версиях. Форматы дат, отличные от RFC2822 / ISO, не рекомендуется и будут удалены в следующем основном выпуске. Пожалуйста, обратитесь к http://momentjs.com/guides/#/warnings/js-date/ для получения дополнительной информации. Аргументы: [0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: 09:00 AM, _f: undefined, _strict: undefined, _locale: [объект объекта] Ошибка

1 Ответ

0 голосов
/ 01 июля 2019

Вы забыли закрывающую скобку: if(moment().isBetween(nineFormat,tenFormat){ должно быть if(moment().isBetween(nineFormat,tenFormat)){.

Вы также не должны форматировать даты, которые вы передаете isBetween, или, по крайней мере, форматировать их как стандартную строку ISO.

let nine = moment("9:00", "HH:mm A");
let ten = moment("10:00", "HH:mm A");

if (moment().isBetween(nine, ten)) {
     console.log("I'm here");
}
...