---
title: Date.parse()
slug: Web/JavaScript/Reference/Global_Objects/Date/parse
tags:
  - Date
  - JavaScript
  - Method
  - Reference
translation_of: Web/JavaScript/Reference/Global_Objects/Date/parse
---
<div>{{JSRef("Global_Objects", "Date")}}</div>

<h2 id="Summary">Сводка</h2>

<p>Метод <strong><code>Date.parse()</code></strong> разбирает строковое представление даты и возвращает количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC.</p>

<h2 id="Syntax">Синтаксис</h2>

<p>Прямой вызов:</p>

<pre class="syntaxbox"><code>Date.parse(<var>dateString</var>)</code></pre>

<p>Неявный вызов:</p>

<pre class="syntaxbox"><code>new Date(<var>dateString</var>)</code></pre>

<h3 id="Parameters">Параметры</h3>

<dl>
 <dt><code>dateString</code></dt>
 <dd>Строковое представление даты из RFC2822 (<a href="http://tools.ietf.org/html/rfc2822#page-14">на английском</a>, <a href="http://rfc2.ru/5322.rfc/print#p3.3">на русском</a>) или ISO 8601. Могут использоваться и другие форматы, но результаты в таком случае будут непредсказуемые.</dd>
</dl>

<h2 id="Description">Описание</h2>

<p>Метод <code>parse()</code> принимает строку с датой (например, <code>"Dec 25, 1995"</code>) и возвращает количество миллисекунд, прошедших с 1 января 1970 года 00:00:00 по UTC. Этот метод полезен для установки значения даты из строкового значения, например, в сочетании с методом {{jsxref("Date.prototype.setTime()", "setTime()")}} о объектом {{jsxref("Global_Objects/Date", "Date")}}.</p>

<p>По данному строковому представлению времени метод <code>parse()</code> возвращает значение времени. Он принимает синтаксис даты из RFC2822 / IETF (RFC2822 раздел 3.3 — <a href="http://tools.ietf.org/html/rfc2822#page-14">на английском</a>, <a href="http://rfc2.ru/5322.rfc/print#p3.3">на русском</a>), например, <code>"Mon, 25 Dec 1995 13:30:00 GMT"</code>. Он понимает аббревиатуры континентальных часовых поясов США, но для общего пользования используйте смещение часовых поясов, например, <code>"Mon, 25 Dec 1995 13:30:00 +0430"</code> (4 часа 30 минут к востоку от Гринвичского меридиана). Если часовой пояс не определён и строка является форматом ISO, распозначаемым ES5, предполагается, что часовым поясом является UTC. GMT и UTC считаются эквивалентными. Местный часовой пояс используется для интерпретации аргумента в формате RFC2822 из раздела 3.3 (<a href="http://tools.ietf.org/html/rfc2822#page-14">на английском</a>, <a href="http://rfc2.ru/5322.rfc/print#p3.3">на русском</a>) (или в любом другом формате, не распознаваемым как ISO 8601 в ES5), если он не содержит информации о часовом поясе.</p>

<h3 id="ECMAScript_5_ISO-8601_format_support">Поддержка формата ISO-8601 в ECMAScript 5</h3>

<p>Строка с датой и временем может быть в формате <a href="http://www.w3.org/TR/NOTE-datetime">ISO 8601</a>. Например, могут быть переданы и разобраны строки <code>"2011-10-10"</code> (только дата) или <code>"2011-10-10T14:48:00"</code> (дата и время). Для интерпретации аргументов в формате <a href="http://www.w3.org/TR/NOTE-datetime">ISO 8601</a>, не содержащих информацию о часовом поясе, используется часовой пояс UTC.</p>

<p>Хотя во время разбора строки с датой и используется спецификатор часового пояса, возвращаемое значение всегда содержит количество миллисекунд между 1 января 1970 года 00:00:00 по UTC и моментом времени, представленным аргументом.</p>

<p>Поскольку метод <code>parse()</code> является статическим методом объекта {{jsxref("Global_Objects/Date", "Date")}}, вы всегда должны использовать его как <code>Date.parse()</code>.</p>

<h3 id="Differences_in_assumed_time-zone">Различия в предполагаемом часовом поясе</h3>

<p>Для строки даты <code>"March 7, 2014"</code>, метод <code>parse()</code> будет предполагать местный часовой пояс, но если строка дана в формате ISO, например <code>"2014-03-07"</code>, он будет предполагать, что часовой пояс равен UTC. Поэтому объекты {{jsxref("Global_Objects/Date", "Date")}}, созданные из этих строк, если в системе местный часовой пояс не равен UTC, будут представлять разные моменты времени. Это значит, что две строки с датами, которые выглядят одинаковыми, могут дать два разных значения в зависимости от формата преобразуемой строки.</p>

<h3 id="Fall-back_to_implementation-specific_date_formats">Откат к зависимым от реализации форматам даты</h3>

<p>В спецификации ECMAScript говорится: если строка не соответствует стандартному формату, функция может откатиться к любой зависимой от реализации эвристике, либо к зависимому от реализации алгоритму разбора. Нераспознанные строки, либо даты, содержащие недопустимые значения элементов в строках формата ISO, должны при вызове <code>Date.parse()</code> возвращать {{jsxref("Global_Objects/NaN", "NaN")}}.</p>

<p>Однако, недопустимые значения в строке даты, не распознанные как формат ISO, как определено ES5 могут возвращать, а могут и не возвращать {{jsxref("Global_Objects/NaN", "NaN")}} в качестве результата, в зависимости от браузера и предоставленных значений, например:</p>

<pre class="brush: js">// Строка не в формате ISO с недопустимыми значениями даты
new Date('23/25/2014');
</pre>

<p>будет рассматриваться как местная дата 25 ноября 2015 года в Firefox 30 и как недопустимая дата в Safari 7. Однако, если строка распознана как строка в формате ISO и она содержит недопустимые значения, метод вернёт {{jsxref("Global_Objects/NaN", "NaN")}} во всех браузерах, совместимых с ES5:</p>

<pre class="brush: js">// Строка в формате ISO с недопустимыми значениями даты
new Date('2014-25-23').toISOString();
// вернёт "RangeError: invalid date" во всех браузерах, совместимых с ES5
</pre>

<p>Реализация эвристики SpiderMonkey может быть найдена в файле <a href="http://mxr.mozilla.org/mozilla-central/source/js/src/jsdate.cpp?rev=64553c483cd1#889"><code>jsdate.cpp</code></a>. Строка <code>"10 06 2014"</code> является примером не подходящей под формат ISO и поэтому её разбор откатывается на пользовательскую подпрограмму. Так же смотрите эту <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023155#c6">грубую схему</a> работы разбора строки.</p>

<pre class="brush: js">new Date('10 06 2014');
</pre>

<p>будет рассматриваться как местная дата 6 октября 2014 года, а не 10 июня 2014 года. Другие примеры:</p>

<pre class="brush: js">new Date('foo-bar 2014').toString();
// вернёт: "Invalid Date"

Date.parse('foo-bar 2014');
// вернёт: NaN
</pre>

<h2 id="Examples">Примеры</h2>

<h3 id="Example_Using_parse">Пример: использование метода <code>Date.parse()</code></h3>

<p>Если переменная <code>IPOdate</code> содержит существующий объект {{jsxref("Global_Objects/Date", "Date")}}, она может быть установлена в 9 августа 1995 года (по местному времени) следующим способом:</p>

<pre class="brush: js">IPOdate.setTime(Date.parse('Aug 9, 1995'));</pre>

<p>Ещё несколько примеров разбора нестандартных строк с датами:</p>

<pre class="brush: js">Date.parse('Aug 9, 1995');</pre>

<p>Вернёт <code>807937200000</code> в часовом поясе GMT-0300, и другие значения в других часовых поясах, так как поскольку строка не определяет часовой пояс и не находится в формате ISO, то часовой пояс по умолчанию равен местному часовому поясу.</p>

<pre class="brush: js">Date.parse('Wed, 09 Aug 1995 00:00:00 GMT');</pre>

<p>Вернёт <code>807926400000</code> вне зависимости от местного часового пояса, поскольку предоставлен спецификатор GMT (всемирное координированное время).</p>

<pre class="brush: js">Date.parse('Wed, 09 Aug 1995 00:00:00');</pre>

<p>Вернёт <code>807937200000</code> в часовом поясе GMT-0300, и другие значения в других часовых поясах, так как поскольку строка не определяет часовой пояс и не находится в формате ISO, то часовой пояс по умолчанию равен местному часовому поясу.</p>

<pre class="brush: js">Date.parse('Thu, 01 Jan 1970 00:00:00 GMT');</pre>

<p>Вернёт <code>0</code> вне зависимости от местного часового пояса, поскольку предоставлен спецификатор GMT (всемирное координированное время).</p>

<pre class="brush: js">Date.parse('Thu, 01 Jan 1970 00:00:00');</pre>

<p>Вернёт <code>14400000</code> в часовом поясе GMT-0400, и другие значения в других часовых поясах, так как поскольку строка не определяет часовой пояс и не находится в формате ISO, то используется местный часовой пояс.</p>

<pre class="brush: js">Date.parse('Thu, 01 Jan 1970 00:00:00 GMT-0400');</pre>

<p>Вернёт <code>14400000</code> вне зависимости от местного часового пояса, поскольку предоставлен спецификатор GMT (всемирное координированное время).</p>

<h2 id="Specifications">Спецификации</h2>

{{Specifications}}

<h2 id="Browser_compatibility">Совместимость с браузерами</h2>

<p>{{Compat}}</p>

<h2 id="See_also">Смотрите также</h2>

<ul>
 <li>{{jsxref("Date.UTC()")}}</li>
</ul>