Метод isSameOrAfter является частью библиотеки Moment.js
и используется для сравнения двух объектов даты и времени. Он позволяет
определить, является ли момент времени одинаковым с другим или
наступает позже него. Этот метод чрезвычайно полезен при работе
с временными диапазонами, проверкой дедлайнов, сортировкой событий и
логикой планирования.
momentA.isSameOrAfter(momentB, unit);
Параметры:
momentB — объект Moment или строка/дата, с которой
выполняется сравнение.unit (опционально) — строка, указывающая единицу
измерения для сравнения. Может принимать значения: 'year',
'month', 'week', 'day',
'hour', 'minute', 'second',
'millisecond'. Если параметр не указан, сравнение
выполняется по точной дате и времени.Возвращаемое значение: Булево значение
(true или false):
true, если момент momentA совпадает с
momentB или находится позже него.false в противном случае.Сравнение без указания единицы измерения:
const date1 = moment('2026-05-21T10:00:00');
const date2 = moment('2026-05-21T09:30:00');
console.log(date1.isSameOrAfter(date2)); // true
В этом примере date1 находится позже date2,
поэтому метод возвращает true. Если бы времена были
одинаковыми, результат также был бы true.
Сравнение с указанием единицы измерения:
const date1 = moment('2026-05-21T10:00:00');
const date2 = moment('2026-05-21T09:30:00');
console.log(date1.isSameOrAfter(date2, 'day')); // true
console.log(date1.isSameOrAfter(date2, 'hour')); // true
console.log(date1.isSameOrAfter(date2, 'minute')); // true
console.log(date1.isSameOrAfter(date2, 'second')); // true
При указании единицы измерения метод игнорирует все более мелкие
компоненты времени. Например, при сравнении по day минуты и
секунды игнорируются, учитывается только день, месяц и год.
Сравнение с одинаковыми датами:
const date1 = moment('2026-05-21T10:00:00');
const date2 = moment('2026-05-21T10:00:00');
console.log(date1.isSameOrAfter(date2)); // true
Метод возвращает true, так как даты идентичны.
Сравнение с более ранней датой:
const date1 = moment('2026-05-21T10:00:00');
const date2 = moment('2026-05-22T10:00:00');
console.log(date1.isSameOrAfter(date2)); // false
console.log(date1.isSameOrAfter(date2, 'day')); // false
Даже при сравнении по дню, date1 находится раньше
date2, поэтому результат остаётся false.
isSameOrAfter не изменяет исходные
объекты Moment. Он только выполняет проверку и возвращает
булево значение..utc() или привести даты к одной временной зоне.Date, строками в формате ISO или другими объектами
Moment.Метод isSameOrAfter тесно связан с другими методами
Moment.js для сравнения:
isSame — проверяет, совпадают ли даты по указанной
единице.isAfter — проверяет, находится ли момент строго позже
другого.isBefore и isSameOrBefore — аналогичные
проверки для “раньше”.Пример комбинированного использования:
const start = moment('2026-05-21');
const end = moment('2026-05-25');
const today = moment('2026-05-22');
if (today.isSameOrAfter(start) && today.isSameOrBefore(end)) {
console.log('Сегодня находится в пределах периода');
}
Такой подход позволяет легко проверять попадание даты в диапазон.
Метод isSameOrAfter работает быстро даже при большом
количестве сравнений, так как Moment.js хранит внутренние числовые
представления времени. Однако для массовых операций с миллионами дат
рекомендуется рассматривать использование более лёгких библиотек или
встроенного Date объекта для критически производительных
сценариев.
Метод isSameOrAfter обеспечивает гибкую и точную
проверку дат, позволяя выбирать уровень точности сравнения,
будь то год, день, час или секунда. Он незаменим для построения логики
работы с временными диапазонами, календарями, планировщиками задач и
других временных операций в JavaScript.