Конвертер меток времени

Конвертируйте метки времени Unix в читаемые даты и обратно — оба направления остаются синхронизированными при редактировании любого из них.

Метка времени Unix

Дата и время

Что такое метка времени Unix?

Секунды (или мс) с 1 января 1970 года.

Эпоха Unix — это полночь UTC 1 января 1970 года. Метка времени — это просто число секунд (или миллисекунд), прошедших с тех пор, поэтому она сортируется и сравнивается как обычное число, в отличие от отформатированной строки даты.

Разница между секундами и миллисекундами

Unix, Linux и большинство серверных API используют секунды. Собственный Date.now() JavaScript и большая часть фронтенд-кода используют миллисекунды. Путаница между ними — одна из самых распространённых ошибок с метками времени: значение в «секундах», вставленное в поле «миллисекунды», попадает куда-то в 1970 год.

Как это работает

Всё проходит через объект Date браузера, который внутренне хранит одно число: миллисекунды с эпохи Unix, полуночи UTC 1 января 1970 года. При конвертации метки времени инструмент умножает на 1000, если вы указали секунды, строит Date, а затем отображает его четырьмя способами: ваше местное время через toLocaleString (форматтер Intl браузера, использующий ваш часовой пояс и язык), UTC, ISO 8601 и относительную метку «через 3 дня / 2 часа назад», вычисляемую путём разбиения разницы с текущим моментом на годы, месяцы, дни, часы, минуты или секунды.

В обратном направлении значение выбора даты интерпретируется как местное время и конвертируется обратно в секунды и миллисекунды. Поле datetime-local заполняется путём сдвига метки времени на смещение вашего часового пояса — это та тонкая деталь, в которой большинство конвертеров ошибаются незаметно: toISOString() всегда работает в UTC, поэтому без этого сдвига выбор даты показывал бы время, отличающееся на несколько часов от ожидаемого настенного времени.

Классическая ошибка, от которой защищает этот инструмент, делая единицу измерения явной: секунды против миллисекунд. Текущее время Unix — это 10 цифр в секундах и 13 цифр в миллисекундах. Разберите значение в миллисекундах как секунды — и вы окажетесь более чем на 50 000 лет в будущем; сделайте наоборот — получите январь 1970 года. Если результат конвертации выглядит абсурдно, переключите выпадающий список единиц — почти всегда в этом вся ошибка. Значения вне диапазона (даты JavaScript ограничены 100 миллионами дней в каждую сторону от эпохи, примерно до 275760 года) выдают понятную ошибку вместо бессмыслицы.

Весь разбор и форматирование — это работа локального API браузера. Откройте вкладку Network в DevTools во время конвертации: ни один запрос не отправляется, а метки времени из ваших логов никогда не покидают ваш компьютер.