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) в локальном часовом поясе также может влиять на это.
Вот еще несколько примеров нестандартных строк даты. Браузеры очень снисходительны при разборе строковых представлений дат и могут отбрасывать любую часть строки, которую они не могут разобрать. Из соображений совместимости браузеры часто копируют поведение друг друга, поэтому эти шаблоны обработки, как правило, распространяются между браузерами. Как было сказано ранее, следующие примеры приведены только для иллюстрации и ни в коем случае не являются исчерпывающими:
| Описание | Пример | 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:00Thu Jan 01 1970Jan 01 1970 00:00:00Jan 01 1970
| 0 | |||||||||||||
Строки, похожие на toUTCString()
|
Thu, 01 Jan 1970 00:00:00Thu, 01 Jan 197001 Jan 1970 00:00:0001 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-23Mar 32, 20142014/25/23
| NaN | |||||||||||||
2014-02-30 | 1393718400000 (Mar 02 2014) | NaN | |||||||||||||
02/30/2014 | 1393718400000 | ||||||||||||||
| Посторонние символы после названия месяца |
04 Dec 199504 Decem 199504 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