Unix
Timestamp
Переводит Unix-время в читаемую дату и обратно. Поддерживает секунды, миллисекунды и несколько форматов вывода.
Unix timestamp — это количество секунд, прошедших с 1 января 1970 года, 00:00:00 UTC. Эта точка называется Unix-эпохой или Epoch. Она была выбрана разработчиками Unix в конце 1960-х как удобная отправная точка.
Timestamp не зависит от часового пояса — это абсолютный момент времени. Одно и то же число 1741434000 означает один и тот же момент в Москве, Токио и Нью-Йорке. Разница лишь в том, как это число переводится в локальное время.
Некоторые timestamp стали культурными и техническими вехами — их знают наизусть системные администраторы и разработчики.
| Timestamp | Дата UTC | Событие | |
|---|---|---|---|
| 0 | 01.01.1970 00:00:00 | Unix Epoch — точка отсчёта | |
| 1 000 000 000 | 09.09.2001 01:46:40 | Первый «красивый» миллиард секунд | |
| 1 111 111 111 | 18.03.2005 01:58:31 | Timestamp из одних единиц | |
| 1 234 567 890 | 13.02.2009 23:31:30 | Последовательные цифры 1–9 | |
| 1 500 000 000 | 14.07.2017 02:40:00 | Полтора миллиарда секунд | |
| 2 000 000 000 | 18.05.2033 03:33:20 | Два миллиарда секунд | |
| 2 147 483 647 | 19.01.2038 03:14:07 | Y2K38 — переполнение 32-битного int |
Получить текущий timestamp — одна строка в любом языке. Главное помнить: JavaScript возвращает миллисекунды, а большинство серверных языков — секунды.
// JavaScript — миллисекунды (÷1000 для секунд) const ts = Date.now(); // 1741434000000 const ts = Math.floor(Date.now() / 1000); // 1741434000 const d = new Date(1741434000 * 1000); // обратно в Date // Python — секунды import time, datetime ts = int(time.time()) # 1741434000 d = datetime.datetime.fromtimestamp(ts) # обратно в datetime // PHP — секунды $ts = time(); // 1741434000 $d = new DateTime("@$ts"); // обратно в DateTime // SQL (PostgreSQL) SELECT EXTRACT(EPOCH FROM NOW()); -- текущий timestamp SELECT TO_TIMESTAMP(1741434000); -- обратно в timestamptz
При хранении в базе данных используйте тип BIGINT или TIMESTAMP WITH TIME ZONE — не INT, иначе столкнётесь с проблемой 2038 года.