Локальное время — это дата и время, привязанные к часовому поясу системы, в которой выполняется Javascript-код. По умолчанию Moment.js работает именно с локальным временем браузера или среды Node.js.
Создание объекта даты:
const now = moment();
console.log(now.format());
Пример результата:
2026-05-21T14:35:10+06:00
Смещение +06:00 указывает локальный часовой пояс
системы.
const now = moment();
Moment автоматически использует локальные настройки системы.
const date = moment('2026-05-21 18:30');
console.log(date.format());
Результат:
2026-05-21T18:30:00+06:00
Дата интерпретируется как локальная.
const date = moment('21.05.2026 18:30', 'DD.MM.YYYY HH:mm');
console.log(date.format());
Метод isLocal() определяет, использует ли объект
локальное время.
const localDate = moment();
console.log(localDate.isLocal());
Результат:
true
Moment.js поддерживает преобразование времени UTC в локальное системное время.
const utcDate = moment.utc('2026-05-21T12:00:00Z');
console.log(utcDate.format());
Результат:
2026-05-21T12:00:00Z
const localDate = utcDate.local();
console.log(localDate.format());
Если локальный часовой пояс +06:00, результат будет:
2026-05-21T18:00:00+06:00
Moment пересчитывает время относительно локального смещения.
local()Метод local() переводит объект Moment в локальный
режим.
const date = moment.utc('2026-05-21T00:00:00Z');
date.local();
console.log(date.format());
Метод utcOffset() возвращает смещение в минутах.
const offset = moment().utcOffset();
console.log(offset);
Пример:
360
Значение 360 означает UTC+6.
const date = moment().utcOffset(180);
console.log(date.format());
Смещение задаётся в минутах.
const date = moment().utcOffset('+03:00');
console.log(date.format());
Moment.js автоматически:
Пример:
console.log(moment().format());
console.log(moment().format('YYYY-MM-DD HH:mm:ss'));
Результат:
2026-05-21 14:45:30
console.log(moment().format('Z'));
Результат:
+06:00
console.log(moment().format('dddd, D MMMM YYYY HH:mm:ss Z'));
Пример:
четверг, 21 мая 2026 14:45:30 +06:00
Moment.js поддерживает локализацию дат.
moment.locale('ru');
const date = moment();
console.log(date.format('LLLL'));
Пример:
четверг, 21 мая 2026 г., 14:50
const local = moment();
Использует часовой пояс системы.
const utc = moment.utc();
Использует универсальное координированное время.
console.log(local.format());
console.log(utc.format());
Пример:
2026-05-21T14:55:00+06:00
2026-05-21T08:55:00Z
Moment.js умеет работать с часовыми поясами через библиотеку Moment Timezone.
Подключение:
<script src="moment.js"></script>
<script src="moment-timezone.js"></script>
const date = moment.tz('2026-05-21 12:00', 'Europe/Moscow');
console.log(date.format());
const localDate = date.local();
console.log(localDate.format());
guess()console.log(moment.tz.guess());
Пример:
Asia/Almaty
Moment.js автоматически учитывает DST (Daylight Saving Time).
const date = moment();
console.log(date.isDST());
Результат:
true
или
false
const a = moment('2026-05-21 10:00');
const b = moment('2026-05-21 12:00');
console.log(a.isSame(b, 'day'));
console.log(a.isBefore(b));
console.log(a.isAfter(b));
const date = moment();
date.add(3, 'hours');
console.log(date.format());
date.subtract(2, 'days');
console.log(moment().startOf('day').format());
console.log(moment().endOf('day').format());
fromNow()const date = moment().subtract(3, 'hours');
console.log(date.fromNow());
Результат:
3 часа назад
toNow()const date = moment().add(2, 'days');
console.log(date.toNow());
const date = moment(
'21-05-2026',
'DD-MM-YYYY',
true
);
console.log(date.isValid());
const invalid = moment('99-99-9999', 'DD-MM-YYYY');
console.log(invalid.isValid());
Результат:
false
Moment.js изменяет исходный объект, поэтому часто используется клонирование.
const original = moment();
const copy = original.clone();
copy.add(1, 'day');
console.log(original.format());
console.log(copy.format());
const date = moment();
console.log(date.toJSON());
const nativeDate = moment().toDate();
console.log(nativeDate);
console.log(moment().unix());
const date = moment.unix(1780000000);
console.log(date.format());
Ошибка:
const utc = moment.utc();
const local = moment();
console.log(utc.diff(local));
Разные режимы времени могут давать неожиданные результаты.
const date = moment();
const modified = date.add(1, 'day');
console.log(date.format());
Метод add() изменяет оригинальный объект.
moment('2026-05-21T10:00:00');
Без указания зоны строка трактуется как локальное время.
moment.locale('ru');
const now = moment();
console.log(
now.format('D MMMM YYYY, HH:mm:ss')
);
Результат:
21 мая 2026, 15:10:45
const eventUtc = moment.utc(
'2026-05-21T15:00:00Z'
);
const userTime = eventUtc.local();
console.log(
userTime.format('YYYY-MM-DD HH:mm')
);
const eventDate = moment('2026-06-01');
console.log(eventDate.fromNow());
Пример результата:
через 11 дней
function log(message) {
const time = moment().format(
'YYYY-MM-DD HH:mm:ss'
);
console.log(`[${time}] ${message}`);
}
log('Сервер запущен');
Результат:
[2026-05-21 15:20:10] Сервер запущен