Метод from является частью библиотеки Moment.js и
предназначен для генерации человеко-читаемых строк, описывающих
временные промежутки относительно другого момента времени. Он
используется для того, чтобы выразить разницу между двумя датами в
формате «X минут назад», «через Y дней» и подобных.
moment().from(Moment|Date|String|Number, Boolean);
Параметры:
Moment|Date|String|Number – момент
времени, относительно которого будет вычисляться разница. Если параметр
не указан, используется текущее время (moment()).Boolean – необязательный параметр
withoutSuffix. При значении true метод
возвращает строку без суффикса «назад» или «через». По умолчанию
false.let now = moment();
let past = moment().subtract(3, 'days');
console.log(past.from(now)); // "3 дня назад"
console.log(past.from(now, true)); // "3 дня"
В этом примере создаётся объект past, представляющий
момент времени три дня назад. Метод from возвращает строку
с учётом суффикса, если второй параметр не указан.
Метод from корректно работает и для дат в будущем:
let future = moment().add(5, 'hours');
console.log(future.from()); // "через 5 часов"
console.log(future.from(moment(), true)); // "5 часов"
При сравнении с текущим временем результат отражает будущее событие с соответствующим префиксом.
Метод from позволяет сравнивать два произвольных момента
времени:
let eventStart = moment('2026-06-01');
let eventEnd = moment('2026-06-10');
console.log(eventEnd.from(eventStart)); // "через 9 дней"
console.log(eventStart.from(eventEnd)); // "9 дней назад"
В примере видно, что метод автоматически определяет направление разницы и добавляет правильный суффикс.
Moment.js позволяет создавать промежутки с различной точностью:
минуты, часы, дни, недели, месяцы, годы. Метод from
выбирает подходящую единицу для выражения интервала:
console.log(moment().subtract(45, 'seconds').from()); // "несколько секунд назад"
console.log(moment().subtract(90, 'seconds').from()); // "минуту назад"
console.log(moment().subtract(5, 'days').from()); // "5 дней назад"
console.log(moment().add(2, 'months').from()); // "через 2 месяца"
Метод from автоматически использует текущую локаль
Moment.js. Для изменения языка выводимых строк используется метод
locale:
moment.locale('ru');
console.log(moment().subtract(3, 'days').fromNow()); // "3 дня назад"
moment.locale('en');
console.log(moment().subtract(3, 'days').fromNow()); // "3 days ago"
Поддержка локалей обеспечивает корректное склонение числительных и выбор суффиксов для разных языков.
fromNowМетод fromNow является сокращённой версией
from с текущим временем в качестве базового:
console.log(moment().subtract(2, 'hours').fromNow()); // "2 часа назад"
console.log(moment().add(10, 'minutes').fromNow()); // "через 10 минут"
Внутри fromNow вызывается from(moment()),
что делает синтаксис более компактным для вычислений относительно
текущего момента.
from не изменяет оригинальный объект
Moment, а возвращает новую строку.withoutSuffix = true используется для создания строк
без «назад» или «через», полезно для статических интерфейсов.Метод from активно используется в интерфейсах для
отображения относительного времени, например:
Метод from часто комбинируется с add,
subtract, startOf, endOf для
более точного управления датами:
let startOfWeek = moment().startOf('week');
let twoDaysLater = startOfWeek.add(2, 'days');
console.log(twoDaysLater.from(startOfWeek)); // "через 2 дня"
Такой подход позволяет создавать гибкие вычисления временных интервалов для календарей, планировщиков и таймеров.