gikami
@gikami
web программист

Как с помощью moment.js определить, входит ли указанное время в промежуток времён?

Есть 3 динамически изменяемых времени.
1. Время сейчас, к примеру 18:00.
2. Время начала работы, к примеру 10:00.
3. Время конца рабочего дня, 01:00 (Может быть другое 22:00... и т д).

Пытаюсь делать проверку через moment.js
1.isBetween(2,3).
Но проблема в 3 времени, так как оно выходит в будущий день и проверяя, получается что проверка идет от 01:00 до 18:00. А нужно от 18:00 до 01:00. То есть 02:00 не должен срабатывать.
Как отслеживать день и время в таком ключе? И как красивее подобное условие написать, не фигача множество проверок?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
gikami
@gikami Автор вопроса
web программист
Спасибо за ответ WbICHA
const isWork = (start, end) => {
  if (!start || !end) {
    return false;
  }
  const startTime = moment(start, "kk:mm");
  const endTime = moment(end, "kk:mm");
  const isEndNextDay = endTime.isSameOrBefore(startTime);
  if (isEndNextDay) {
    endTime.add(1, "day");
  }
  return moment().isBetween(startTime, endTime, null, "[]");
};
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
imko
@imko
Senior Scratch Developer
Между 10 и 24 ИЛИ между 24 и 01
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы