Метод toNow является удобным инструментом для вычисления
относительного времени, показывая, сколько времени прошло с момента
определённой даты до текущего момента. Он является частью библиотеки
Moment.js и используется для генерации человекочитаемых строк, таких как
«5 минут назад» или «через 2 дня».
momentObj.toNow([withoutSuffix]);
Параметры:
withoutSuffix (необязательный, булев тип) — если
установлено в true, результат не будет содержать суффикса
«назад» или «через». По умолчанию false.Возвращаемое значение: Строка, представляющая относительное время от текущего момента.
Отображение прошедшего времени Если объект
Moment представляет дату в прошлом, toNow() автоматически
формирует строку с суффиксом «назад».
const pastDate = moment().subtract(3, 'hours');
console.log(pastDate.toNow()); // "3 часа назад"Отображение будущего времени Если дата находится в будущем относительно текущего момента, результат содержит суффикс «через».
const futureDate = moment().add(2, 'days');
console.log(futureDate.toNow()); // "через 2 дня"Без суффикса Использование параметра
withoutSuffix позволяет получить чистое значение времени
без дополнительных слов.
const pastDate = moment().subtract(15, 'minutes');
console.log(pastDate.toNow(true)); // "15 минут"Метод toNow internally вызывает метод from,
передавая в него текущую дату. То есть выражение:
momentObj.toNow();
эквивалентно:
momentObj.from(moment());
Это означает, что любые тонкости работы метода from,
такие как локализация, округление и отображение единиц времени,
полностью применимы и к toNow.
Moment.js поддерживает множество языков. Метод toNow
автоматически использует текущую локаль, установленную через
moment.locale().
moment.locale('ru');
const pastDate = moment().subtract(1, 'week');
console.log(pastDate.toNow()); // "1 неделя назад"
При смене локали меняются не только единицы измерения, но и суффиксы («назад», «через»). Это особенно полезно для интернационализации интерфейсов.
Разные единицы времени:
console.log(moment().subtract(30, 'seconds').toNow()); // "30 секунд назад"
console.log(moment().subtract(5, 'minutes').toNow()); // "5 минут назад"
console.log(moment().subtract(12, 'hours').toNow()); // "12 часов назад"
console.log(moment().subtract(3, 'days').toNow()); // "3 дня назад"
console.log(moment().subtract(2, 'months').toNow()); // "2 месяца назад"
console.log(moment().subtract(1, 'years').toNow()); // "1 год назад"
Для будущего времени:
console.log(moment().add(45, 'minutes').toNow()); // "через 45 минут"
console.log(moment().add(10, 'days').toNow()); // "через 10 дней"
С использованием без суффикса:
console.log(moment().subtract(90, 'seconds').toNow(true)); // "90 секунд"
console.log(moment().add(3, 'weeks').toNow(true)); // "3 недели"
diff, чтобы
получить точное количество миллисекунд, секунд или минут.toNow в интерфейсе полезно для
динамического отображения времени в социальных сетях, блогах и
уведомлениях, так как строки автоматически обновляются относительно
текущего момента.Метод toNow поддерживается во всех актуальных версиях
Moment.js. Однако стоит учитывать, что Moment.js считается устаревающей
библиотекой и рекомендуется рассматривать альтернативы, такие как Luxon
или Day.js, для новых проектов, особенно если важна производительность и
поддержка современных стандартов работы с датами.
fromNow — аналог toNow,
но вызывается напрямую из текущей даты:
moment().fromNow().from — позволяет указать произвольную
дату, к которой будет относиться объект Moment:
moment('2026-05-21').from(moment('2026-05-20')).diff — возвращает точное числовое
различие между датами, полезно для вычислений перед вызовом
toNow.Метод toNow обеспечивает быстрый и читаемый способ
отображения относительного времени, делая его важной частью инструментов
Moment.js для взаимодействия с пользователями и интерфейсами, где
ключевую роль играет восприятие времени.