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

Как из миллисекунд получить дату javascript

  • автор:

как перевести дату в миллисекунды js

В JavaScript даты хранятся в виде объектов. Для того, чтобы перевести дату в миллисекунды, можно использовать метод getTime() , который возвращает количество миллисекунд, прошедших с 1 января 1970 года (UNIX-эпохи).

Вот пример кода:

const date = new Date('2021-08-18'); const milliseconds = date.getTime(); console.log(milliseconds); // выведет количество миллисекунд, соответствующее дате 

В этом примере мы создали новый объект даты, указав дату в формате ‘yyyy-mm-dd’ . Затем мы вызвали метод getTime() на этом объекте и сохранили количество миллисекунд в переменной milliseconds . В конце мы вывели это значение в консоль.

Дата (Date)

Дата JavaScript может быть написана как строка:
Mon Nov 20 2017 13:07:02 GMT+0200 (FLE Standard Time)
Или как число:1511176022851
Даты, записанные как числа, указывают количество миллисекунд с 1 января 1970 года, 00:00:00.

Отображение дат

Отобразим дату внутри тега

с помощью следующего скрипта:

Демо
В приведенном выше коде: значение Date() присваивается содержимому (innerHTML) элемента с >

Создание объекта Date

Объект Date используется для работы с датами и временем (годы, месяцы, дни, часы, минуты, секунды и миллисекунды).
Объекты Date создаются с помощью конструктора new Date() .
Существует четыре способа создания объекта Date:
JSR

var myDate = new Date(); var myDate = new Date(milliseconds); var myDate = new Date(dateString); var myDate = new Date(year, month, day, hours, minutes, seconds, milliseconds);

Используйте new Date() для создания нового объекта date с текущей датой и временем:

Демо
Используйте new Date(date string) для создания нового объекта date с указанной даты и времени:

Демо
Используйте new Date(number) для создания нового объекта date как нулевого времени плюс число:
Нулевым временем считается 01 января 1970 00:00:00 UTC. Число указано в миллисекундах:

В JavaScript, даты рассчитываются в миллисекундах с 01 января 1970 года 00:00:00 Universal Time (UTC). Один день (24 часа) содержит 86,400,000 миллисекунд.

Передайте в new Date() 7 чисел для создания нового объекта date с указанной датой и временем:
Нулевым временем считается 01 января 1970 00:00:00 UTC. Число указано в миллисекундах:

Демо
Другой вариант примера выше. Можно опустить любой из последних 4 параметров:

JavaScript подсчитывает месяцы от 0 до 11. Январь равен 0. Декабрь — 11.

Методы Date

Когда объект Date создан, ряд методов позволяет вам работать с ним.
Методы Date позволяют вам получить и установить год, месяц, день, час, минуту, секунду и миллисекунду объектов, используя либо локальное время, либо время UTC (универсальное или GMT).

Отображение дат

Когда вы показываете объект даты в HTML, он автоматически преобразуется в строку с помощью метода toString().

То же самое, что:

Метод toUTCString() преобразует дату в строку UTC (стандарт отображения даты).

Метод toDateString() преобразует дату в более читаемый формат:

Объекты даты статичны. Время компьютера тикает, но объект Date, после создания, не меняется.

Часовые пояса

При установке даты без указания часового пояса JavaScript будет использовать часовой пояс браузера.

При получении даты без указания часового пояса результат преобразуется в часовой пояс браузера.

Другими словами: если дата/время создается в GMT (среднее время по Гринвичу), дата/время будут преобразованы в CDT (Central US Daylight Time), если пользователь просматривает данные из центральной части США.

Свойства объекта Date

Свойство Описание
constructor Возвращает функцию, которая создала прототип объекта Date
prototype Позволяет добавлять свойства и методы к объекту

Методы объекта Date

Свойство Описание
getDate() Возвращает день месяца (от 1-31)
getDay() Возвращает день недели (от 0 до 6)
getFullYear() Возвращает год
getHours() Возвращает часы (от 0 до 23)
getMilliseconds() Возвращает миллисекунды (от 0 до 999)
getMinutes() Возвращает минуты (от 0 до 59)
getMonth() Возвращает месяц (с 0-11)
getSeconds() Возвращает секунды (от 0 до 59)
getTime() Возвращает количество миллисекунд с полуночи 1 января 1970 года до указанной даты
getTimezoneOffset() Возвращает разницу во времени между временем UTC и местным временем, в минутах
getUTCDate() Возвращает день месяца, в соответствии с универсальным временем (с 1-31)
getUTCDay() Возвращает день недели, в соответствии с универсальным временем (от 0 до 6)
getUTCFullYear() Возвращает год, в соответствии с универсальным временем
getUTCHours() Возвращает часы, в соответствии с универсальным временем (от 0 до 23)
getUTCMilliseconds() Возвращает миллисекунды в соответствии с универсальным временем (от 0 до 999)
getUTCMinutes() Возвращает минуты, в соответствии с универсальным временем (от 0 до 59)
getUTCMonth() Возвращает месяц, в соответствии с универсальным временем (от 0-11)
getUTCSeconds() Возвращает секунды, в соответствии с универсальным временем (от 0 до 59)
getYear() Устаревшее . Вместо этого используйте метод getFullYear()
now() Возвращает количество миллисекунд с полуночи 1 января 1970 г.
parse() Парсит строку даты и возвращает число миллисекунд с 1 января 1970
setDate() Устанавливает день месяца объекта Date
setFullYear() Устанавливает год объекта Date
setHours() Устанавливает часы объекта Date
setMilliseconds() Устанавливает миллисекунды объекта Date
setMinutes() Установить минуты объекта Date
setMonth() Устанавливает месяц объекта Date
setSeconds() Устанавливает секунды объекта Date
setTime() Устанавливает дату в указанное количество миллисекунд после/до 1 января 1970 г.
setUTCDate() Устанавливает день месяца объекта Date, в соответствии с универсальным временем
setUTCFullYear() Устанавливает год объекта Date, в соответствии с универсальным временем
setUTCHours() Устанавливает час объекта Date, в соответствии с универсальным временем
setUTCMilliseconds() Устанавливает миллисекунды объекта Date, в соответствии с универсальным временем
setUTCMinutes() Устанавливает минуты объекта Date, в соответствии с универсальным временем
setUTCMonth() Устанавливает месяц объекта Date, в соответствии с универсальным временем
setUTCSeconds() Установите секунды объекта Date, в соответствии с универсальным временем
setYear() Устаревшее . Вместо этого используйте метод setFullYear()
toDateString() Преобразует часть даты объекта Date в читаемую строку
toGMTString() Устаревшее . Вместо этого используйте метод toUTCString()
toISOString() Возвращает дату в виде строки, используя стандарт ISO
toJSON() Возвращает дату как строку, в формате JSON
toLocaleDateString() Возвращает часть даты объекта Date в виде строки, используя соглашения локали
toLocaleTimeString() Возвращает временную часть объекта Date в виде строки, используя соглашения локали
toLocaleString() Преобразует объект Date в строку, используя соглашения локали
toString() Преобразует объект Date в строку
toTimeString() Преобразует временную часть объекта Date в строку
toUTCString() Преобразует объект Date в строку, в соответствии с универсальным временем (Universal Time)
UTC() Возвращает количество миллисекунд в день, с полуночи 1 января 1970 года в соответствии с временем UTC
valueOf() Возвращает примитивное значение объекта Date

Date.prototype.getMilliseconds()

Метод getMilliseconds() возвращает миллисекунды указанной даты по местному времени.

Синтаксис

dateObj.getMilliseconds()

Параметры

Возвращаемое значение

Значение, возвращённое методом getMilliseconds() , является целым числом от 0 до 999.

Примеры

Пример: использование метода getMilliseconds()

В следующем примере переменной milliseconds присваиваются миллисекунды текущего времени:

let today = new Date(); let milliseconds = today.getMilliseconds(); console.log(milliseconds); // 709 

Спецификации

Specification
ECMAScript Language Specification
# sec-date.prototype.getmilliseconds

Совместимость с браузерами

BCD tables only load in the browser

Смотрите также

  • Date.prototype.getUTCMilliseconds()
  • Date.prototype.setMilliseconds()

Found a content problem with this page?

  • Edit the page on GitHub.
  • Report the content issue.
  • View the source on GitHub.

This page was last modified on 3 авг. 2023 г. by MDN contributors.

Your blueprint for a better internet.

MDN

Support

  • Product help
  • Report an issue

Our communities

Developers

  • Web Technologies
  • Learn Web Development
  • MDN Plus
  • Hacks Blog
  • Website Privacy Notice
  • Cookies
  • Legal
  • Community Participation Guidelines

Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998– 2023 by individual mozilla.org contributors. Content available under a Creative Commons license.

Базовые операции с датами

Создать дату в JavaScript можно с помощью конструктора Date() , который при вызове без параметров ( const date = new Date() ) вернет дату и время вызова в формате YYYY-MM-DDTHH:mm:ss.sssZ где YYYY-MM-DD — год, месяц и день, T — разделитель между датой и временем, HH:mm:ss.sss — часы, минут, секунды и миллисекунды, а Z — настройки временной зоны. Даты в JavaScript представлены в виде количества миллисекунд, прошедших с 1 января 1970 года по UTC поэтому новую дату можно так же создать с помощью метода .now() глобального объекта Date , который вернет количество миллисекунд до вызова.

const date1 = new Date(); //2023-08-29T11:30:31.224Z const date2 = Date.now(); //1693308631228

Поскольку даты содержат точное количество миллисекунд, прошедших с 1 января 1970 года по UTC разницу между ними можно использовать для замера времени между началом и окончанием выполнения какой-либо операции. Для таких целей лучше использовать метод Date.now() вместо конструктора т.к. он гораздо быстрее потому что не создает при вызове промежуточных объектов и возвращает сразу количество миллисекунд, что может быть важно при проведении большого количества замеров подряд.

const start = Date.now(); (function someCalcs() < //какие-то сложные вычисления >)(); console.log(`Время выполнения: $мс`);

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

  • Указать год, месяц, день и т.д. цифрами через запятую
  • Строка вида “ YYYY-MM-DDTHH:mm:ss.sssZ” или ‘December 31, 2023 23:59:59’ фактически такой способ является неявным вызовом метода Date.parse()
  • Другой объект даты
  • Количество миллисекунд, прошедших с 1 января 1970 года по UTC

При указании даты строкой или перечислением цифр не обязательно указывать точное до мс значение. Если не передать количество мс, секунд, минут или часов — они будут автоматически установлены на 0, дни на 1, месяца на 0 (нумерация месяцев начинается с 0). При этом год нужно передавать полностью, а не последние 2 цифры.

Внести изменения в уже существующий объект даты, можно с помощью методов, которые имеют название .set как .setDate() для дней ( .getDay() вернет день недели числом от 0 до 6), .setFullYear() для года ( .setYear() был удален из стандарта т.к. мог принимать не полное значение года) или .setHours() для часов. Если указать при объявлении даты или передать в один из таких методов несуществующее значение, например 20-й месяц или 25-й час — дата автоматически отформатируется и вместо 25 часов добавит к значений дней единицу, а часы установит на 1.

Важно помнить что Date ссылочный тип данных и два объекта, содержащие одинаковые даты не будут равны друг другу при любом типе сравнения.

const newYear1 = new Date(2023, 11, 31, 23, 59, 59, 999); //2023-12-31T18:59:59.999Z const newYear2 = new Date("2023-12-31T18:59:59.999"); //2023-12-31T13:59:59.999Z const newYear3 = new Date(1704031199999); //передаем количество мс //2023-12-31T13:59:59.999Z console.log(newYear1 === newYear2); //false const ms = newYear1 - newYear2; //при этом разница в ms = 0 //0 newYear1.setDate(32); //устанавливаем несуществующий день в месяце console.log(newYear1); //2024-01-01T18:59:59.999Z дата подстроится под заданные параметры

По аналогии с методами для изменения значений даты, существуют методы для получения части значений. Такие методы имеют название .get или .getUTC для получения получения значений по Гринвичу.

const date = new Date(); //дата и время на момент вызова date.getHours(); //значение часов в месте вызова date.getUTCHours() //значение часов по Гринвичу

Работа с форматированием дат

В JavaScript доступны методы для вывода дат в виде строки разных форматов:

  • .toString()
    • не принимает параметров и возвращает строку в виде: день недели (Mon), первые три буквы месяца (Aug), день (28), год (2023), время без мс (12:45:30), часовой пояс относительно UTC (GMT-0700) и название часового пояса в скобках (Pacific Daylight Time).
    • аналогичен .toString() , но возвращает только дату без времени.
    • аналогичен .toString() , но возвращает только время без даты.
    • аналогичен .toString() , но возвращает дату по Гринвичу.
    • принимает настройки локализации (язык и название страны) и опции (например формат отображения часов в виде 24 или am/pm) и возвращает строку в принятом в указанной стране и языке формате.
    • аналогичен .toLocalString() , но возвращает только дату без времени.
    • аналогичен .toLocalString() , но возвращает только время без даты.
    const date = new Date(); //стандартное форматирование //2023-08-29T14:47:07.820Z console.log(date.toString()); //в строку //Tue Aug 29 2023 19:47:07 GMT+0500 (Yekaterinburg Standard Time) console.log(date.toDateString()); //только дата //Tue Aug 29 2023 console.log(date.toTimeString()); //только время //19:47:07 GMT+0500 (Yekaterinburg Standard Time) console.log(date.toUTCString()); //по Гринвичу //Tue, 29 Aug 2023 14:47:07 GMT console.log(date.toLocaleString("en-US")); //англичйский США //8/29/2023, 7:47:07 PM console.log(date.toLocaleString("en-US", < hour12: false >)); //то же но 24 часовой формат //8/29/2023, 19:47:07 console.log(date.toLocaleDateString("de-DE")); //только дата немецкий Германия //29.8.2023 console.log(date.toLocaleTimeString("ko-KR")); //только время корейский Корея //오후 7:47:07

    Date можно сериализовать в формат JSON с помощью метода .toJSON() . Конструктор конечно же прекрасно распарсит такую строку.

    const toJSON = new Date().toJSON(); //2023-08-29T14:51:52.158Z const toDate = new Date(toJSON); //2023-08-29T14:51:52.158Z console.log(typeof toJSON); //string console.log(typeof toDate);//object

    Заключение

    Понимание концепций работы с датами и навык их применения позволят вам создавать более динамичные и функциональные веб-приложения на JavaScript. Не забывайте продолжать изучать и практиковать использование дат в своих проектах, чтобы стать опытным и уверенным разработчиком. Надеюсь что данная статья была полезна для понимания столь важной темы, а если вы хотите изучить основы языка или детально погрузиться в устройство JavaScript я подготовил подробные курсы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *