Date.parse()
Статический метод Date.parse()
разбирает строковое представление даты и возвращает временную метку.
В явном виде поддерживается только формат date time string. Другие форматы определяются реализацией и могут работать не во всех браузерах. Если необходимо обеспечить работу с большим количеством различных форматов, можно воспользоваться библиотекой.
Интерактивный пример
Синтаксис
Date.parse(dateString)
Параметры
dateString
-
Строка в формате date time string. См. указанный источник для получения информации об использовании различных форматов.
Возвращаемое значение
Число, представляющее временную метку (англ. timestamp) заданной даты. Если dateString
не удается преобразовать в правильную дату, то возвращается NaN
.
Описание
Эта функция полезна для установки значений даты на основе строковых значений, например, совместно с методом setTime()
.
Поскольку parse()
является статическим методом Date
, его всегда нужно использовать как Date.parse()
, а не как метод созданного вами объекта Date
.
Примеры
Использование Date.parse()
Все следующие вызовы возвращают 1546300800000
. В первом случае подразумевается время UTC, поскольку это только дата, а в остальных явно указывается часовой пояс UTC.
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 в локальном часовом поясе системы, поскольку в нем есть и дата, и время.
Date.parse("2019-01-01T00:00:00");
Нестандартные строки с датами
Примечание: Этот раздел описывает поведение, которое может различаться в зависимости от конкретной реализации.
Реализации обычно используют по умолчанию местный часовой пояс, если строка даты нестандартна. Для определённости мы будем считать, что в коде используется часовой пояс UTC.
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