🧱 Суть
В реальных приложениях даты постоянно преобразуются между форматами:
Unix timestamp
↓
Date
↓
ISO
↓
отображение пользователю📦 Проблема
Разные системы используют разные форматы.
API может вернуть:
1712563200А JavaScript работает с:
1712563200000Разница:
- API → секунды
- JS Date → миллисекунды
Unix → Date
const date = new Date(timestamp * 1000);Почему x 1000:
1 секунда = 1000 миллисекундDate → ISO
const iso = new Date().toISOString();Получаем:
2025-04-08T11:23:45.000ZГде:
T– разделитель даты и времениZ– UTC
ISO → Unix
const timestamp =
new Date('2025-04-08').getTime();Получаем миллисекунды.
Если нужны секунды:
const unix =
new Date('2025-04-08').getTime() / 1000;💻 Код
API:
{
dt: 1712563200
}Преобразование:
const date = new Date(item.dt * 1000);
const result = date
.toISOString()
.split('T')[0];Результат:
2025-04-08🎯 Вывод
- Unix timestamp удобен для передачи данных.
- ISO удобен для хранения и сравнения.
Dateиспользуется для работы внутри JS.- Перед отображением пользователю дату лучше форматировать отдельно.