Получение текущей даты и времени

Базовое создание объекта текущего момента

В библиотеке Day.js основной способ получения текущей даты и времени основан на вызове функции без аргументов. При таком вызове создаётся объект, содержащий момент выполнения кода.

import dayjs from "dayjs";

const now = dayjs();

Функция dayjs() без параметров возвращает текущие локальные дату и время, используя системные часы окружения выполнения (браузер или Node.js). Полученный объект является иммутабельной структурой, предоставляющей цепочку методов для форматирования и преобразования.


Альтернативный способ через стандартный объект Date

Day.js поддерживает создание экземпляра на основе стандартного объекта JavaScript Date. Это используется при необходимости явного контроля над источником времени.

const now = dayjs(new Date());

Передача new Date() эквивалентна вызову без аргументов, поскольку Date также возвращает текущее время. Разница заключается в том, что явная передача объекта Date используется в архитектурах, где требуется унификация входных данных.


Получение времени в миллисекундах

Для получения текущего времени в виде UNIX timestamp (миллисекунды с 1 января 1970 года) используется метод valueOf().

import dayjs from "dayjs";

const timestamp = dayjs().valueOf();

Метод возвращает числовое значение, соответствующее текущему моменту времени. Это значение полностью совместимо с Date.now().

Эквивалентная форма:

const timestamp = Date.now();

Получение времени в секундах (Unix timestamp)

Day.js предоставляет метод unix(), возвращающий время в секундах.

import dayjs from "dayjs";

const unixTime = dayjs().unix();

Значение представляет собой целое число, удобное для хранения в базах данных и передачи между сервисами, где не требуется точность до миллисекунд.


Преобразование в объект Date

В ряде случаев требуется вернуть нативный объект JavaScript Date. Для этого используется метод toDate().

import dayjs from "dayjs";

const nativeDate = dayjs().toDate();

Результат представляет собой стандартный объект Date, совместимый со всеми встроенными API языка.


Формирование текущего времени в строковом представлении

Получение текущего времени часто сопровождается форматированием. Метод format() позволяет преобразовать момент в строку заданного вида.

import dayjs from "dayjs";

const formatted = dayjs().format("YYYY-MM-DD HH:mm:ss");

Часто используемые шаблоны:

  • YYYY — год
  • MM — месяц
  • DD — день
  • HH — часы (24-часовой формат)
  • mm — минуты
  • ss — секунды

Пример вывода:

2026-05-22 14:35:10

Локальное время и системные часы

При вызове dayjs() без дополнительных плагинов используется локальное время системы. Это означает, что результат зависит от настроек окружения выполнения.

const localTime = dayjs();

Особенности:

  • используется локальный часовой пояс устройства
  • не выполняется автоматическая конвертация в UTC
  • синхронизация с системным временем ОС

Сравнение с моментом выполнения кода

Каждый вызов dayjs() фиксирует отдельный момент времени. При последовательных вызовах возможна микроскопическая разница значений.

import dayjs from "dayjs";

const t1 = dayjs();
const t2 = dayjs();

Разница между t1 и t2 обычно измеряется миллисекундами и зависит от скорости выполнения интерпретатора и нагрузки среды.


Получение текущего времени в цепочках операций

Объект Day.js поддерживает цепочки вызовов, где текущая дата используется как отправная точка для преобразований.

import dayjs from "dayjs";

const result = dayjs()
  .add(1, "day")
  .format("YYYY-MM-DD");

Хотя здесь выполняется модификация, базой остаётся текущий момент, полученный через dayjs().


Контроль точности текущего времени

В стандартной конфигурации точность ограничена миллисекундами. При необходимости более строгой синхронизации времени используются внешние источники (например, серверное время), после чего значение передаётся в Day.js.

const serverTimestamp = 1760000000000;
const serverTime = dayjs(serverTimestamp);

Такой подход позволяет унифицировать отображение времени независимо от локального устройства.


Использование текущего времени в вычислениях

Текущий момент часто используется как базовая точка для вычисления интервалов.

import dayjs from "dayjs";

const now = dayjs();
const diff = now.add(2, "hour").diff(now, "minute");

Результат выражает разницу между текущим временем и смещённым значением.


Получение нескольких представлений одного момента

Один и тот же текущий момент может быть представлен в различных форматах без повторного вызова функции.

import dayjs from "dayjs";

const now = dayjs();

const iso = now.toISOString();
const unix = now.unix();
const formatted = now.format("DD.MM.YYYY");

Каждое представление основывается на одном объекте времени, что исключает рассинхронизацию значений.


Работа с системным временем окружения

При инициализации Day.js обращается к системным часам среды выполнения. Это означает:

  • в браузере используется время устройства пользователя
  • в Node.js используется время сервера или контейнера
  • изменения системного времени мгновенно отражаются на новых вызовах dayjs()
const systemTime = dayjs();