Spec-Zone.ru › JavaScript

Date.parse()

Базовый уровень Широко доступен

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

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

Попробуйте

// Standard date-time string format
const unixTimeZero = Date.parse("1970-01-01T00:00:00Z");
// Non-standard format resembling toUTCString()
const javaScriptRelease = Date.parse("04 Dec 1995 00:12:00 GMT");

console.log(unixTimeZero);
// Expected output: 0

console.log(javaScriptRelease);
// Expected output: 818035920000

Синтаксис

Date.parse(dateString)

Параметры

dateString
Строка в формате строки даты и времени. См. связанную ссылку для предупреждений об использовании различных форматов.

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

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

Описание

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

Форматы, которые может обрабатывать parse(), явно не указаны, но есть несколько инвариантов:

  • Формат строки даты и времени (создаваемый toISOString()) должен поддерживаться.
  • Если x — это любая дата, количество миллисекунд которой равно нулю, то x.valueOf() должно быть равно любому из следующих значений: Date.parse(x.toString()), Date.parse(x.toUTCString()), Date.parse(x.toISOString()). Это означает, что форматы, создаваемые toString() и toUTCString(), также должны поддерживаться.
  • Спецификация не требует поддержки формата, создаваемого toLocaleString(). Однако все основные движки стараются поддерживать формат toLocaleString("en-US").

Другие форматы определяются реализацией и могут не работать во всех браузерах. Библиотека может помочь, если необходимо учесть много разных форматов. Фактически, ненадежность Date.parse() является одной из мотиваций для введения API Temporal.

Поскольку 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");

Форматы toString() и toUTCString()

Помимо стандартного формата строки даты и времени, поддерживаются форматы toString() и toUTCString():

// toString() format
Date.parse("Thu Jan 01 1970 00:00:00 GMT-0500 (Eastern Standard Time)");
// 18000000 in all implementations in all timezones

// toUTCString() format
Date.parse("Thu, 01 Jan 1970 00:00:00 GMT");
// 0 in all implementations in all timezones

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

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

Реализации обычно используют локальный часовой пояс по умолчанию, если строка даты нестандартна. Для обеспечения согласованности мы будем предполагать, что среда выполнения использует часовой пояс UTC, и, если не указано иное, вывод будет зависеть от часового пояса устройства. Летнее время (DST) в локальном часовом поясе также может влиять на это.

Вот еще несколько примеров нестандартных строк даты. Браузеры очень снисходительны при разборе строковых представлений дат и могут отбрасывать любую часть строки, которую они не могут разобрать. Из соображений совместимости браузеры часто копируют поведение друг друга, поэтому эти шаблоны обработки, как правило, распространяются между браузерами. Как было сказано ранее, следующие примеры приведены только для иллюстрации и ни в коем случае не являются исчерпывающими:

</table> ## Спецификации
Описание Пример Chrome Firefox Safari
Одно число 0 (однозначное) 946684800000 (Jan 01 2000); NaN in Firefox ≤122 -62167219200000 (Jan 01 0000)
31 (двузначное) NaN -61188912000000 (Jan 01 0031)
999 (трех-/четырехзначное) -30641733102000 (Jan 01 0999)
Строки даты, использующие разные разделители 1970-01-01 (стандарт) 0 in all time zones
1970/01/01 0
1970,01,01 0 NaN
1970 01 01 0 NaN
Строки, похожие на toString() Thu Jan 01 1970 00:00:00
Thu Jan 01 1970
Jan 01 1970 00:00:00
Jan 01 1970
0
Строки, похожие на toUTCString() Thu, 01 Jan 1970 00:00:00
Thu, 01 Jan 1970
01 Jan 1970 00:00:00
01 Jan 1970
0
Первый компонент даты двузначный 01-02-03 (первый сегмент может быть допустимым месяцем) 1041465600000 (Jan 02 2003) -62132745600000 (Feb 03 0001)
Примечание: Safari всегда предполагает YY-MM-DD, но MM/DD/YY.
27-02-03 (первый сегмент может быть допустимым днем, но не месяцем) NaN -61312291200000 (Feb 03 0027)
49-02-03 (первый сегмент не может быть допустимым днем и <50) 2495923200000 (Feb 03 2049) -60617980800000 (Feb 03 0049)
50-02-03 (первый сегмент не может быть допустимым днем и ≥50) -628300800000 (Feb 03 1950) -60586444800000 (Feb 03 0050)
Компоненты даты вне допустимого диапазона 2014-25-23
Mar 32, 2014
2014/25/23
NaN
2014-02-30 1393718400000 (Mar 02 2014) NaN
02/30/2014 1393718400000
Посторонние символы после названия месяца 04 Dec 1995
04 Decem 1995
04 December 1995
818031600000
04 DecFoo 1995 818031600000
Считываются только первые три символа.
Firefox ≤121 считывает до допустимого названия месяца, возвращая NaN, когда видит "F".
04 De 1995 NaN
Спецификация
Спецификация языка ECMAScript® 2027
# sec-date.parse
## Совместимость с браузерами
Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
parse
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0
iso_8601
6
12
4
6
5.1
18
4
10.1
5
1.0
4.4
5
1.0.0
1.0
0.12.0
## См. также - Date.UTC()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API