@fessss

Сравнение дат в moment js?

Как правильно сравнить даты в moment js?

const minDate = moment().subtract(366, 'd').format('YYYY-MM-DD');
const maxDate = moment().add(366, 'd').format('YYYY-MM-DD');
const val = moment(value, 'DD.MM.YYYY').format('YYYY-MM-DD');
if (val > minDate && val < maxDate) return 'Введите верную дату';


То есть мне нужно, чтобы введенная дата была не больше чем текущая + 366 дней и не меньше чем текущая - 366 дней
  • Вопрос задан
  • 2192 просмотра
Решения вопроса 1
Ты используешь moment js чтобы получить нужную дату, но перед сравнением конвертируешь в строку? Садись, два!
https://momentjs.com/docs/#/query/is-between/
https://momentjs.com/docs/#/query/is-same-or-before/
https://momentjs.com/docs/#/query/is-same-or-after/
Выбирай на вкус
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
Безо всяких тяжёлых momentjs можно родным объектом Date обойтись.

Дата из формата 'DD.MM.YYYY': new Date(value.split('.').reverse().join('-'))

Добавить 366 дней: D.setDate(D.getDate() + 366) Вычесть так же.

Сравнивать объекты Date можно напрямую: if (D1 > D2)
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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