Date.parse()

Статический метод 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

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