Конвертация обычной даты в Unix timestamp на JavaScript

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для быстрого получения Unix timestamp из обычной даты в JavaScript, можно воспользоваться следующим кодом:

JS
Скопировать код
const unixTimestamp = Math.floor(new Date('2023-01-01').getTime() / 1000);
console.log(unixTimestamp);

Функция new Date() создает объект даты, метод getTime() возвращает время в миллисекундах, прошедшее с начала эпохи Unix, а функция Math.floor() округляет результат до ближайшего целого числа. Деление на 1000 позволяет получить Unix timestamp в секундах.

Кинга Идем в IT: пошаговый план для смены профессии

Форматы дат, которые нужно знать

Корректность формата вводимой даты — залог успеха. JavaScript правильно интерпретирует формат ISO 8601, который обычно выглядит так: 'YYYY-MM-DD'. Использование неправильных форматов может привести к ошибкам и разочарованию.

Пример некорректного формата:

JS
Скопировать код
const uncertainUnix = new Date('01-01-2023').getTime() / 1000; // Неправильное расположение месяцев может запутать

Пример корректного формата:

JS
Скопировать код
const definiteUnix = new Date('2023-01-01').getTime() / 1000; // Все отрабатывает как нужно

Переход от миллисекунд к секундам происходит с помощью функции Math.floor().

Временная зона имеет значение

При работе с timestamp важно учесть временную зону. JavaScript по умолчанию использует временную зону браузера. Чтобы учесть UTC метки, добавьте 'Z' в конец строки или используйте Date.UTC().

Пример учета временной зоны:

JS
Скопировать код
const timestampWithTimezone = new Date('2023-01-01T00:00:00Z').getTime() / 1000; // 'Z' обозначает временную зону UTC

Работа в UTC:

JS
Скопировать код
const utcTimestamp = Date.UTC(2023, 0, 1) / 1000; // Нумерация месяцев в JavaScript начинается с нуля

Использование Date.parse()

Метод Date.parse() возвращает timestamp в миллисекундах.

JS
Скопировать код
const parsedTimestamp = Date.parse('2023-01-01') / 1000;

Для исправной работы Date.parse() передаваемая строка должна соответствовать формату, понятному JavaScript.

Визуализация

Представьте путь от обычной даты до Unix timestamp так:

Markdown
Скопировать код
📅 Обычная Дата: "2023-04-01 12:00:00"
🚂💨🕒 Unix Timestamp: 1680345600

И ваш итоговый код, с помощью которого можно перейти в мир Unix времени:

JS
Скопировать код
const date = new Date("2023-04-01 12:00:00");
const timestamp = date.getTime() / 1000;

Каждая секунда приближает дату к новой эре.

Библиотеки помогают: moment.js

Библиотека moment.js упрощает работу с датами и преобразование их в Unix timestamp.

JS
Скопировать код
const momentTimestamp = moment('2023-01-01', 'YYYY-MM-DD').unix();

moment.js особенно полезен при работе со сложными форматами и при манипуляциях с датами.

Различия единиц измерения timestamp

getTime() и Date.parse() возвращают время в миллисекундах, в то время как Unix timestamp измеряется в секундах. Это означает потребность в дополнительном преобразовании и внимательном отношении к формату данных.

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

Объекты Date и отдельные компоненты даты тоже могут быть преобразованы в Unix timestamp.

Текущая дата:

JS
Скопировать код
const nowTimestamp = Math.floor(Date.now() / 1000);

Компоненты даты:

JS
Скопировать код
const componentTimestamp = Math.floor(new Date(2023, 0, 1, 0, 0, 0, 0).getTime() / 1000);

Полезные материалы

  1. Date.parse() – JavaScript | MDN — подробности о методе Date.parse().
  2. Epoch Converter – Unix Timestamp Converter — преобразование времени станет проще.
  3. Преобразование Unix timestamp во время в JavaScript – Stack Overflow — опыт сообщества разработчиков поможет в решении.
  4. Unix Time Stamp – Epoch Converter — быстрое путешествие во времени.
  5. Date.prototype.getTime() – JavaScript | MDN — посмотрите, как получить время от объекта Date.
  6. Специальный раздел для работы с датами в JavaScript — Ваш надежный гид в мир JavaScript дат.
  7. Полное руководство по датам JavaScript — здесь вы найдете все о работе с датами в JavaScript.