Метод isBefore используется для проверки, находится ли
один объект даты раньше другого. Это один из ключевых инструментов
библиотеки Moment.js для сравнения временных значений. Он позволяет
работать с точностью до различных единиц измерения времени — от
миллисекунд до лет.
momentA.isBefore(momentB, unit);
Параметры:
momentB — объект Moment.js, с которым происходит
сравнение.unit (необязательный) — строка, задающая
единицу времени для сравнения. Возможные значения: 'year',
'month', 'week', 'day',
'hour', 'minute', 'second',
'millisecond'.Возвращаемое значение: Булево (true или
false). Возвращает true, если
momentA раньше momentB с учетом указанной
единицы времени.
unit сравнение выполняется по полной
точности, включая миллисекунды:const date1 = moment('2026-05-21T10:30:00');
const date2 = moment('2026-05-21T12:45:00');
console.log(date1.isBefore(date2)); // true
const date1 = moment('2026-05-21T23:59:59');
const date2 = moment('2026-05-21T00:00:01');
console.log(date1.isBefore(date2, 'day')); // false, так как это один и тот же день
console.log(date1.isBefore(date2, 'hour')); // false, час отличается только на уровне часов
console.log(date1.isBefore(date2, 'minute')); // false
const past = moment('2020-01-01');
const future = moment('2030-01-01');
console.log(past.isBefore(future)); // true
console.log(future.isBefore(past)); // false
'month',
то сравнение происходит только на уровне месяцев и игнорирует дни, часы
и минуты.Date или строками
Moment.js автоматически преобразует их в объекты Moment.const date1 = moment('2026-05-21');
const date2 = new Date('2026-06-01');
console.log(date1.isBefore(date2, 'month')); // true
Метод isBefore часто применяется вместе с
isAfter и isSame для построения сложной логики
сравнения дат:
const start = moment('2026-01-01');
const end = moment('2026-12-31');
const check = moment('2026-06-15');
if (check.isBefore(end) && check.isAfter(start)) {
console.log('Дата находится в диапазоне');
}
unit.Сравнение дат через isBefore проще и безопаснее, чем
через стандартный объект Date:
const date1 = new Date('2026-05-21T10:30:00');
const date2 = new Date('2026-05-21T12:45:00');
console.log(date1 < date2); // true, но не учитывает единицы времени
Moment.js обеспечивает:
Метод isBefore является базовым инструментом для работы
с временными диапазонами, фильтрации событий по дате, построения
календарей и планирования задач. Его гибкость позволяет легко управлять
логикой сравнения дат в любых приложениях на JavaScript.