Date.parse()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

Статический метод Date.parse() разбирает строковое представление даты и возвращает временную метку.

В явном виде поддерживается только формат date time string. Другие форматы определяются реализацией и могут работать не во всех браузерах. Если необходимо обеспечить работу с большим количеством различных форматов, можно воспользоваться библиотекой.

Интерактивный пример

Синтаксис

js
Date.parse(dateString)

Параметры

dateString

Строка в формате date time string. См. указанный источник для получения информации об использовании различных форматов.

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

Число, представляющее временную метку (англ. timestamp) заданной даты. Если dateString не удается преобразовать в правильную дату, то возвращается NaN.

Описание

Эта функция полезна для установки значений даты на основе строковых значений, например, совместно с методом setTime().

Поскольку parse() является статическим методом Date, его всегда нужно использовать как Date.parse(), а не как метод созданного вами объекта Date.

Примеры

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

Все следующие вызовы возвращают 1546300800000. В первом случае подразумевается время UTC, поскольку это только дата, а в остальных явно указывается часовой пояс UTC.

js
Date.parse("2019-01-01");
Date.parse("2019-01-01T00:00:00.000Z");
Date.parse("2019-01-01T00:00:00.000+00:00");

Следующий вызов, в котором не указан часовой пояс, будет установлен на 2019-01-01 в 00:00:00 в локальном часовом поясе системы, поскольку в нем есть и дата, и время.

js
Date.parse("2019-01-01T00:00:00");

Нестандартные строки с датами

Примечание: Этот раздел описывает поведение, которое может различаться в зависимости от конкретной реализации.

Реализации обычно используют по умолчанию местный часовой пояс, если строка даты нестандартна. Для определённости мы будем считать, что в коде используется часовой пояс UTC.

js
Date.parse("Jan 1, 1970"); // 0 во всех реализациях

Date.parse("Thu, 01 Jan 1970 00:00:00"); // 0 во всех реализациях

Date.parse("1970,1,1"); // 0 в Chrome и Firefox, NaN в Safari

Date.parse("02 01 1970");
// 2678400000 в Chrome и Firefox (Sun Feb 01 1970 00:00:00 GMT+0000)
// NaN в Safari

// С явным указанием часового пояса
Date.parse("Thu, 01 Jan 1970 00:00:00 GMT+0300");
// -10800000 во всех реализациях и во всех часовых поясах

// Только одно число
Date.parse("0");
// 946684800000 в Chrome (Sat Jan 01 2000 00:00:00 GMT+0000)
// NaN в Firefox
// -62167219200000 в Safari (Sat Jan 01 0000 00:00:00 GMT+0000)

// Двузначное число, которое может быть месяцем
Date.parse("28");
// NaN в Chrome и Firefox
// -61283606400000 в Safari (Fri Dec 31 0027 23:58:45 GMT-0001)

// Двузначный год
Date.parse("70/01/01"); // 0 во всех реализациях

// Компоненты даты за пределами границ
Date.parse("2014-25-23"); // NaN во всех реализациях
Date.parse("Mar 32, 2014"); // NaN во всех реализациях
Date.parse("2014/25/23"); // NaN во всех реализациях

Date.parse("2014-02-30");
// NaN в Safari
// 1393718400000 в Chrome и Firefox (Sun Mar 02 2014 00:00:00 GMT+0000)
Date.parse("02/30/2014"); // 1393718400000 во всех реализациях

// Chrome, Safari и Firefox 122 (и новее) распознают только первые три буквы месяца.
// FF121 (и более старые версии) распознают первые три цифры и любые подстроки с правильным названием месяца.
Date.parse("04 Dec 1995"); // 818031600000 во всех реализациях
Date.parse("04 Decem 1995"); // 818031600000 во всех реализациях
Date.parse("04 December 1995"); // 818031600000 во всех реализациях
Date.parse("04 DecFoo 1995"); // NaN в Firefox 121 (и более старых версиях). 818031600000 в остальных реализациях
Date.parse("04 De 1995"); // NaN во всех реализациях

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

Specification
ECMAScript Language Specification
# sec-date.parse

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

BCD tables only load in the browser

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