Преобразование миллисекунд в читаемый формат даты в JS

Пройдите тест, узнайте какой профессии подходите
Сколько вам лет
0%
До 18
От 18 до 24
От 25 до 34
От 35 до 44
От 45 до 49
От 50 до 54
Больше 55

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

Если стоит задача конвертировать миллисекунды в дату на JavaScript, можно использовать метод new Date(milliseconds):

JS
Скопировать код
let ms = 1575909015000;
console.log(new Date(ms).toLocaleString()); // "09.12.2019, 10:30:15"

Таким образом, вы получите дату и время в формате, соответствующем вашей локали, начиная от даты до времени. Исчисление идёт от начала эпохи Unix (1 января 1970 года).

Пошаговый план для смены профессии

Детальный разбор объекта Date

Если вы хотите выделить конкретные компоненты даты, можно использовать следующие методы:

JS
Скопировать код
let date = new Date(ms);
console.log(date.getFullYear());          // "2019"
console.log(date.getMonth() + 1);         // "12" // Не забывайте, что отсчёт месяцев начинается с нуля.
console.log(date.getDate());              // "9"
console.log(date.toDateString());         // "Mon Dec 09 2019"

Адаптация даты без привязки к локализации

Для учёта различий в локализации и часовых поясах идеально подходит метод toLocaleString():

JS
Скопировать код
console.log(date.toLocaleString("en-US", { timeZone: "America/New_York" }));  // "12/9/2019, 5:30:15 AM"

А для адаптации под другие локали подойдёт следующий код:

JS
Скопировать код
console.log(date.toLocaleString("en-GB")); // "09/12/2019, 10:30:15"

Удобное форматирование даты с помощью внешних библиотек

К библиотекам, которые помогут вам с форматированием дат, относятся, например, Moment.js или Day.js:

JS
Скопировать код
// Используем Moment.js
console.log(moment(ms).format("DD/MM/YYYY HH:mm:ss")); // "09/12/2019 10:30:15"

Возможность форматирования даты по своему усмотрению

В случае необходимости индивидуального формата, создайте функцию для его генерации:

JS
Скопировать код
function customFormat(date) {
    let dd = date.getDate();
    let mm = date.getMonth() + 1; // Январь – это 0!
    let yyyy = date.getFullYear();

    dd = dd < 10 ? '0' + dd : dd;
    mm = mm < 10 ? '0' + mm : mm;

    return `${dd}/${mm}/${yyyy}`;
}

console.log(customFormat(new Date(ms))); // "09/12/2019"

Форматирование даты: ориентируемся на потребности пользователя

Чтобы удовлетворить различные предпочтения пользователей, можете добавить функцию с настраиваемым форматом:

JS
Скопировать код
function userPreferredDateFormat(date, format) {
    return dayjs(date).format(format);
}

console.log(userPreferredDateFormat(new Date(ms), "YYYY-MM-DD")); // "2019-12-09"

Продвинутые методы: манипуляции с временными интервалами

Если вам нужно управлять относительным временем, например добавить или вычесть дни, с этим справится следующий код:

JS
Скопировать код
let tomorrowMs = ms + (24 * 60 * 60 * 1000);
console.log(new Date(tomorrowMs).toLocaleDateString()); // "10/12/2019"

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

Преобразование миллисекунд в дату – это своего рода перевод "языка времени". Взгляните на следующие примеры:

Markdown
Скопировать код
Миллисекунды: 1617071998467

JS
Скопировать код
new Date(1617071998467);

И в итоге получим:

Markdown
Скопировать код
Понятная дата: 📅

Markdown
Скопировать код
| Исходные данные: Миллисекунды (🔢)   | Результат: Дата (📅)          |
| ----------------------- | ----------------------  |
| 1617071998467           | "2021-03-29T23:59:58Z" |

Такова магия перевода закодированного времени в понятную дату и время.

Сложные случаи: переход на летнее и зимнее время, различия в часовых поясах

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

Отображение даты: публичное демонстрирование результатов

Показывайте полученные результаты всем и каждому:

JS
Скопировать код
document.body.textContent = new Date(ms).toString(); // "Mon Dec 09 2019 10:30:15 GMT+0300 (Moscow Standard Time)"

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

  1. Date – JavaScript | MDN — основа для работы с датами в JavaScript.
  2. Moment.js | Документация — подробности о библиотеке Moment.js для работы с датами.
  3. Возможно, вам не нужен jQuery — советы по замене решений jQuery на чистый JavaScript.
  4. Объекты даты в JavaScript — лёгкое в понимании руководство по работе с объектами дат в JavaScript.
  5. date-fns – современная JavaScript-библиотека для работы с датами — знакомство с проектом date-fns, который предлагает новаторский набор инструментов для работы с датами.
  6. ISO – ISO 8601 — формат даты и времени — стандарт ISO 8601 для форматирования дат и времени.
  7. Day.js · 2kB JavaScript библиотека для работы с датами — Day.js, эффективный инструмент для форматирования дат, который отличается своей лёгкостью.
Проверь как ты усвоил материалы статьи
Пройди тест и узнай насколько ты лучше других читателей
Какой метод используется для преобразования миллисекунд в дату в JavaScript?
1 / 5

Загрузка...