Moment.js находится в режиме сопровождения; для нового проекта сначала рассмотрите встроенные Date и Intl либо библиотеку под свои требования. Примеры ниже остаются полезными для существующего кода на Moment. Комментарии с датами и «лет назад» относятся к запуску 11 апреля 2018 года, а не к сегодняшнему дню. Для русских названий загрузите русскую локаль и задайте moment.locale(“ru”).
Для работы с датами в JS очень удобно использовать библиотеку Moment.js. Основные возможности использования этой библиотеки:
Текущее время/дата в разных форматах:
moment().format('MMMM Do YYYY, h:mm:ss a'); // апрель 11-го 2018, 1:03:34 дня
moment().format('dddd'); // среда
moment().format("MMM Do YY"); // апр. 11-го 18
moment().format('YYYY [escaped] YYYY'); // 2018 escaped 2018
moment().format(); // 2018-04-11T 13:03:54+03:00
Разница во времени от текущего:
moment("20111031", "YYYYMMDD").fromNow(); // 6 лет назад
moment("20120620", "YYYYMMDD").fromNow(); // 6 лет назад
moment().startOf('day').fromNow(); // 13 часов назад
moment().endOf('day').fromNow(); // через 11 часов
moment().startOf('hour').fromNow(); // 7 минут назад
Прибавление, вычитание дат:
moment().add(7, 'days'); // прибавляет к текущей дате 7 дней
moment().add(7, 'months'); // прибавляет текущей дате 7 месяцев
moment().add(7, 'years'); // прибавляет к текущей дате 7 лет
moment().subtract(7, 'days'); // вычитает из текущей даты 7 дней
moment().subtract(7, 'months'); // вычитает 7 месяцев из текущей даты
moment().subtract(7, 'years'); // вычитает 7 лет из текущей даты
Сколько времени прошло между двумя произвольными датами:
var dateB = moment('2017-12-12');
var dateC = moment('2017-12-11');
console.log(dateB.from(dateC));
Вычисляем разницу между двумя датами:
var dateB = moment('2014-11-11');
var dateC = moment('2014-10-11');
console.log('Разница в ', dateB.diff(dateC), 'миллисекунд');
console.log('Разница в ', dateB.diff(dateC, 'days'), 'дней');
console.log('Разница в ', dateB.diff(dateC, 'months'), 'месяцев');
Сравнение дат:
console.log(moment('2010-09-20').isAfter('2010-10-19')); // возвращает false
console.log(moment('2010-11-20').isAfter('2010-10-19')); // возвращает true
Поддержка других языков:
moment.locale('ru'); // устанавливает русскую локаль
moment().format('LT'); // 13:15
moment().format('LTS'); // 13:15:44
moment().format('L'); // 11.04.2018
moment().format('l'); // 11.4.2018
moment().format('LL'); // 11 апреля 2018 г.
moment().format('ll'); // 11 апр. 2018 г.
moment().format('LLL'); // 11 апреля 2018 г., 13:15
moment().format('lll'); // 11 апр. 2018 г., 13:15
moment().format('LLLL'); // среда, 11 апреля 2018 г., 13:15
moment().format('llll'); // ср, 11 апр. 2018 г., 13:15
Для вывода даты без Moment:
const date = new Date('2018-04-11T13:15:00+03:00');
const formatter = new Intl.DateTimeFormat('ru-RU', {
dateStyle: 'long', timeStyle: 'short', timeZone: 'Europe/Moscow'
});
console.log(formatter.format(date));
Явный timeZone делает вывод предсказуемым между компьютерами. Разность timestamp — прошедшие миллисекунды; календарные дни и месяцы требуют отдельного правила, особенно при смене часового пояса.
Проверенные источники
momentjs.com, developer.mozilla.org. Проверено 10 октября 2026 года.