Метод to библиотеки Moment.js используется для
форматирования времени относительно текущего момента или другого
указанного времени. Он возвращает строку, которая выражает интервал
времени в человекочитаемом виде, например «5 минут назад» или «через 2
дня». Этот метод является частью функциональности относительного
времени, наряду с методами from и fromNow, но
отличается тем, что возвращает результат в пассивной
форме, то есть от текущего времени к указанной дате.
moment().to(Moment|String|Date|Number, Boolean);
Параметры:
now).withoutSuffix. Если установлен в true,
возвращаемая строка не содержит суффикса вроде «назад» или «через».Возвращаемое значение: Строка, представляющая интервал времени в удобочитаемом формате.
const eventDate = moment().add(3, 'hours');
console.log(moment().to(eventDate)); // через 3 часа
Здесь to вычисляет разницу между текущей датой и
eventDate, возвращая результат с суффиксом «через».
const pastDate = moment().subtract(2, 'days');
console.log(moment().to(pastDate, true)); // 2 дня
Передача true в качестве второго аргумента отключает
добавление «назад», оставляя только числовое выражение интервала.
const birthday = moment('2026-07-01');
console.log(moment().to(birthday)); // через 10 дней (в зависимости от текущей даты)
Метод корректно интерпретирует даты, переданные в формате ISO или других стандартных форматах Moment.js.
from и fromNowfrom — вычисляет время от
указанной даты до текущей или другой даты.to — вычисляет время от
текущей даты к указанной.const someDate = moment().add(5, 'minutes');
console.log(moment().from(someDate)); // через 5 минут
console.log(moment().to(someDate)); // через 5 минут
На первый взгляд результаты совпадают, но разница проявляется при
использовании сложных цепочек и уточнённых сравнений между различными
датами. to всегда смотрит от текущего момента к
цели, тогда как from — от цели к текущему
моменту.
Moment.js поддерживает локализацию, и метод to учитывает
выбранный язык:
moment.locale('ru');
const futureDate = moment().add(1, 'month');
console.log(moment().to(futureDate)); // через месяц
Для английского:
moment.locale('en');
console.log(moment().to(futureDate)); // in a month
Использование locale позволяет автоматически менять
суффиксы и формы числительных в зависимости от языка.
Сравнение будущих и прошлых дат: Метод
to корректно работает с прошлыми датами, возвращая «назад»,
и с будущими, возвращая «через».
Безопасность при передаче параметров:
Рекомендуется использовать объекты Moment или стандартные форматы даты.
Передача некорректных типов может привести к
Invalid date.
Комбинация с add и
subtract: Часто используется вместе с методами
манипуляции времени для динамического вычисления интервалов.
const deadline = moment().add(7, 'days');
console.log(moment().to(deadline)); // через 7 дней
console.log(deadline.to(moment())); // 7 дней назад
withoutSuffix = true, чтобы избежать контекстных форм
(«назад» / «через»).Метод to — мощный инструмент для работы с
человекочитаемыми временными интервалами в Moment.js, позволяющий легко
отображать разницу между событиями в прошлом и будущем, с учётом
локализации и гибких настроек формата.