Чтобы проверить, находится ли момент между двумя другими моментами, при необходимости глядя на шкалу единиц (минуты, часы, дни и т. Д. c), вы должны использовать:
moment().isBetween(moment-like, moment-like, String, String);
// where moment-like is Moment|String|Number|Date|Array
Например, если вы необходимо проверить today - 6months <= someDate <= today
, вы должны использовать что-то вроде:
// returns TRUE if date is outside the range
const isOutsideRange = date => {
const now = moment();
return !moment(date)
.isBetween(now.subtract(6, 'months'), now, undefined, '[]');
// [] - match is inclusive
}
Для получения дополнительной информации, пожалуйста, отметьте Между документами . Этот метод очень гибкий, например, вы можете иметь исключающее или включающее совпадение.
Теперь второе условие. Если вы хотите проверить, endDate - startDate <= 1 month
, вы также можете поиграть с моментами, чтобы достичь этого.
// so if you add 1 month to your startDate and then your end date
// is still before the result or the same - you can say the duration
// between them is 1 month
const lessThanMonth = (startDate, endDate) => {
return endDate.isSameOrBefore(moment(startDate).add(1, 'months'));
}