@studentLesson

Как определить, что определенная дата находится в заданном интервале?

Есть дата, которую вводит пользователь, она приходит ввиде unix-даты.
Мне нужно определить, находится ли эта дата в интервале 4-х месяцев (120 дней) от текущей/сегодняшней даты.

Например он ввел 01.05.2021, то я должен получить ответ что не входит в интервал
А если ввел 01.09.2021 - то находится в интервале 120-ти дней и ещё актуальна.

P.s пользователь выбирает в календаре, но поле приходит ввиде unix.
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Любопытный Факт дня! Объекту Date можно устанавливать новое число (день месяца) вне границ разумного: меньше 1 и больше числа дней в месяце. Магия: объект правильно добавит/удалит месяцы и годы.
const isWithinRange = (ts, days) => {
  const qna = new Date(ts);

  const d = new Date();
  d.setDate( d.getDate() - days ); // 120 дней в прошлое

  return d < qna;
}

Вам там приходит unix timestamp в секундах, но в JS считают миллисекунды, поэтому надо домножить на 1000:
isWithinRange(1619827200 * 1000, 120) // false 1-е мая в 120 дней назад не попадает
isWithinRange(1619827200 * 1000, 180) // true зато в 180 вполне

Как добавить ещё и проверку от сегодня на интервал вперёд в будущее — разберётесь самостоятельно.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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