<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/book.datetime.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'ru',
  ),
  'this' => 
  array (
    0 => 'datetime.formats.php',
    1 => 'Допустимые форматы даты и времени',
    2 => 'Допустимые форматы даты и времени',
  ),
  'up' => 
  array (
    0 => 'book.datetime.php',
    1 => 'Дата и время',
  ),
  'prev' => 
  array (
    0 => 'datetime.error.tree.php',
    1 => 'Ошибки и исключения даты и времени',
  ),
  'next' => 
  array (
    0 => 'timezones.php',
    1 => 'Список поддерживаемых часовых поясов',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'ru',
    'path' => 'reference/datetime/formats.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="datetime.formats" class="chapter">
 <h1 class="title">Допустимые форматы даты и времени</h1>


 <p class="para">
  Раздел описывает разные форматы в BNF-подобном синтаксисе, которые принимает парсер:
  <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span>, <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>,
  <span class="function"><a href="function.date-create-immutable.php" class="function">date_create_immutable()</a></span>,
  <span class="function"><a href="function.date-create.php" class="function">date_create()</a></span>, <span class="function"><a href="function.date-parse.php" class="function">date_parse()</a></span>
  и <span class="function"><a href="function.strtotime.php" class="function">strtotime()</a></span>. Форматы сгруппированы
  по разделам. В большей части случаев форматы из разных разделов, разделённые
  пробелом, запятой или точкой, разрешается указывать в одной и той же строке даты и времени. Для каждого
  поддерживаемого формата приводится один или ряд примеров,
  и описание формата. Символы в одинарных кавычках нечувствительны к регистру
  (<code class="literal">&#039;t&#039;</code> эквивалентно как <code class="literal">t</code>, так и <code class="literal">T</code>),
  символы в двойных кавычках чувствительны к регистру
  (<code class="literal">&quot;T&quot;</code> означает только <code class="literal">T</code>).
 </p>
 <p class="para">
  О форматировании объектов <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>
  рассказывает документация метода <span class="function"><a href="datetime.format.php" class="function">DateTimeInterface::format()</a></span>.
 </p>

 <p class="para">
  При форматировании дат рекомендуют учитывать общие правила.
 </p>
 <ol type="1">
  <li class="listitem">
   <span class="simpara">
    Парсер разрешает для каждой единицы измерения (год, месяц, день, час, минута, секунда) полный диапазон значений.
    Для года — 4 цифры, для месяца — 0-12, дня — 0-31, для часа — 0-24, а для минуты — 0-59.
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Для секунд допускается значение 60, поскольку иногда появляются строки даты с високосной секундой.
    Но PHP реализует Unix-время, в котором значение &quot;60&quot; недопустимо для числа секунд, и поэтому возникает переполнение.
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Функция <span class="function"><a href="function.strtotime.php" class="function">strtotime()</a></span> возвращает значение <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, если какое-либо число выходит за пределы диапазонов,
    а конструктор <span class="function"><a href="datetimeimmutable.construct.php" class="function">DateTimeImmutable::__construct()</a></span> выбрасывает исключение.
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Каждый элемент времени сбрасывается на 0, если строка содержит дату.
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Каждый менее значимый элемент времени сбрасывается до 0,
    если строка содержит какую-либо часть времени.
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Парсер только разбирает строку и не выполняет проверок, чтобы работать быстро и универсально.
   </span>
  </li>
  <li class="listitem">
   <span class="simpara">
    Кроме правил для отдельных элементов времени синтаксический анализатор
    понимает и более специфические <a href="datetime.formats.php#datetime.formats.compound" class="link">комбинированные форматы</a>
    наподбие разбора меток Unix-времени — <code class="literal">@1690388256</code>
    и дат недели в формате ISO — <code class="literal">2008-W28-3</code>.
   </span>
  </li>
  <li class="listitem">
   <p class="para">
    Неверные даты проверяются отдельно:
    <div class="informalexample">
     <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$res </span><span style="color: #007700">= </span><span style="color: #0000BB">date_parse</span><span style="color: #007700">(</span><span style="color: #DD0000">"2015-09-31"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">[</span><span style="color: #DD0000">"warnings"</span><span style="color: #007700">]);</span></span></code></div>
     </div>

     
<p class="para">
 Результат выполнения приведённого примера:
</p>

     <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
array(1) {
  [11] =&gt;
  string(27) &quot;The parsed date was invalid&quot;
}
</pre></div>
     </div>
    </div>
   </p>
  </li>
  <li class="listitem">
   <p class="para">
    Крайние случаи уже обрабатывают, для этого вызывают
    метод <span class="function"><a href="datetimeimmutable.createfromformat.php" class="function">DateTimeImmutable::createFromFormat()</a></span>
    и указывают правильный формат.
    <div class="informalexample">
     <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><br />$res </span><span style="color: #007700">= </span><span style="color: #0000BB">DateTimeImmutable</span><span style="color: #007700">::</span><span style="color: #0000BB">createFromFormat</span><span style="color: #007700">(</span><span style="color: #DD0000">"Y-m-d"</span><span style="color: #007700">, </span><span style="color: #DD0000">"2015-09-34"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">var_dump</span><span style="color: #007700">(</span><span style="color: #0000BB">$res</span><span style="color: #007700">);</span></span></code></div>
     </div>

     
<p class="para">
 Результат выполнения приведённого примера:
</p>

     <div class="example-contents screen">
<div class="annotation-interactive cdata"><pre>
object(DateTimeImmutable)#1 (3) {
  [&quot;date&quot;]=&gt;
  string(26) &quot;2015-10-04 17:24:43.000000&quot;
  [&quot;timezone_type&quot;]=&gt;
  int(3)
  [&quot;timezone&quot;]=&gt;
  string(13) &quot;Europe/London&quot;
}
</pre></div>
     </div>
    </div>
   </p>
  </li>
 </ol>

 
 <div id="datetime.formats.time" class="sect1">
  <h2 class="title">Форматы времени</h2>
  <p class="para">
   Страница описывает форматы даты и времени в BNF-подобном синтаксисе, которые понимает парсер
   методов <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>,
   и функций <span class="function"><a href="function.date-create.php" class="function">date_create()</a></span>,
   <span class="function"><a href="function.date-create-immutable.php" class="function">date_create_immutable()</a></span>
   и <span class="function"><a href="function.strtotime.php" class="function">strtotime()</a></span>.
  </p>
  <p class="para">
   О форматировании объектов <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>
   рассказывает документация метода <span class="function"><a href="datetime.format.php" class="function">DateTimeInterface::format()</a></span>.
  </p>

  <table class="doctable table">
   <caption><strong>Символы форматирования времени</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><code class="literal">frac</code> (дробная часть)</td>
      <td>. [0-9]+</td>
      <td>&quot;.21342&quot;, &quot;.85&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">hh</code> (часы в 12-часовом формате)</td>
      <td>&quot;0&quot;?[1-9] | &quot;1&quot;[0-2]</td>
      <td>&quot;04&quot;, &quot;7&quot;, &quot;12&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">HH</code> (часы в 24-часовом формате)</td>
      <td>[01][0-9] | &quot;2&quot;[0-4]</td>
      <td>&quot;04&quot;, &quot;07&quot;, &quot;19&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">meridian</code> (Ante meridiem или Post meridiem)</td>
      <td>[AaPp] .? [Mm] .? [\0\t ]</td>
      <td>&quot;A.m.&quot;, &quot;pM&quot;, &quot;am.&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">MM</code> (минуты)</td>
      <td>[0-5][0-9]</td>
      <td>&quot;00&quot;, &quot;12&quot;, &quot;59&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">II</code> (секунды)</td>
      <td>[0-5][0-9]</td>
      <td>&quot;00&quot;, &quot;12&quot;, &quot;59&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">space</code> (символ пробела или табуляции)</td>
      <td>[ \t]</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">tz</code> (часовой пояс)</td>
      <td>&quot;(&quot;? [A-Za-z]{1,6} &quot;)&quot;? | [A-Z][a-z]+([_/][A-Z][a-z]+)+</td>
      <td>&quot;CEST&quot;, &quot;Europe/Amsterdam&quot;, &quot;America/Indiana/Knox&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">tzcorrection</code> (числовое значение смещения часового пояса)</td>
      <td>&quot;GMT&quot;? [+-] <code class="literal">hh</code> &quot;:&quot;? <code class="literal">MM</code>?</td>
      <td>&quot;+0400&quot;, &quot;GMT-07:00&quot;, &quot;-07:00&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>12-часовой формат</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>Только часы (с Ante meridiem или Post meridiem)</td>
      <td><code class="literal">hh</code> <code class="literal">space</code>? <code class="literal">meridian</code></td>
      <td>&quot;4 am&quot;, &quot;5PM&quot;</td>
     </tr>

     <tr>
      <td>Часы и минуты (с <code class="literal">Ante meridiem</code> или <code class="literal">Post meridiem</code>)</td>
      <td><code class="literal">hh</code> [.:] <code class="literal">MM</code> <code class="literal">space</code>? <code class="literal">meridian</code></td>
      <td>&quot;4:08 am&quot;, &quot;7:19P.M.&quot;</td>
     </tr>

     <tr>
      <td>Часы, минуты и секунды (с <code class="literal">Ante meridiem</code> или <code class="literal">Post meridiem</code>)</td>
      <td><code class="literal">hh</code> [.:] <code class="literal">MM</code> [.:] <code class="literal">II</code> <code class="literal">space</code>? <code class="literal">meridian</code></td>
      <td>&quot;4:08:37 am&quot;, &quot;7:19:19P.M.&quot;</td>
     </tr>

     <tr>
      <td>MS SQL (Часы, минуты, секунды и дробная часть с Ante meridiem или Post meridiem)</td>
      <td><code class="literal">hh</code> &quot;:&quot; <code class="literal">MM</code> &quot;:&quot; <code class="literal">II</code> [.:] [0-9]+ <code class="literal">meridian</code></td>
      <td>&quot;4:08:39:12313am&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>24-часовой формат</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>Часы и минуты</td>
      <td>&#039;t&#039;? <code class="literal">HH</code> [.:] <code class="literal">MM</code></td>
      <td>&quot;04:08&quot;, &quot;19.19&quot;, &quot;T23:43&quot;</td>
     </tr>

     <tr>
      <td>Часы и минуты (без двоеточия-разделителя)</td>
      <td>&#039;t&#039;? <code class="literal">HH</code> <code class="literal">MM</code></td>
      <td>&quot;0408&quot;, &quot;t1919&quot;, &quot;T2343&quot;</td>
     </tr>

     <tr>
      <td>Часы, минуты и секунды</td>
      <td>&#039;t&#039;? <code class="literal">HH</code> [.:] <code class="literal">MM</code> [.:] <code class="literal">II</code></td>
      <td>&quot;04.08.37&quot;, &quot;t19:19:19&quot;</td>
     </tr>

     <tr>
      <td>Часы, минуты и секунды (без двоеточия-разделителя)</td>
      <td>&#039;t&#039;? <code class="literal">HH</code> <code class="literal">MM</code> <code class="literal">II</code></td>
      <td>&quot;040837&quot;, &quot;T191919&quot;</td>
     </tr>

     <tr>
      <td>Часы, минуты, секунды и часовой пояс</td>
      <td>&#039;t&#039;? <code class="literal">HH</code> [.:] <code class="literal">MM</code> [.:] <code class="literal">II</code> <code class="literal">space</code>? ( <code class="literal">tzcorrection</code> | <code class="literal">tz</code> )</td>
      <td>&quot;040837CEST&quot;, &quot;T191919-0700&quot;</td>
     </tr>

     <tr>
      <td>Часы, минуты, секунды и дробная часть</td>
      <td>&#039;t&#039;? <code class="literal">HH</code> [.:] <code class="literal">MM</code> [.:] <code class="literal">II</code> <code class="literal">frac</code></td>
      <td>&quot;04.08.37.81412&quot;, &quot;19:19:19.532453&quot;</td>
     </tr>

     <tr>
      <td>Сведения о часовом поясе</td>
      <td><code class="literal">tz</code> | <code class="literal">tzcorrection</code></td>
      <td>&quot;CEST&quot;, &quot;Europe/Amsterdam&quot;, &quot;+0430&quot;, &quot;GMT-06:00&quot;</td>
     </tr>

    </tbody>
   
  </table>

 </div>
 

 
 <div id="datetime.formats.date" class="sect1">
  <h2 class="title">Форматы даты</h2>

  <p class="para">
   Эта страница описывает форматы даты в BNF-подобном синтаксисе, которые понимает парсер функций:
   <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span>, <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>,
   <span class="function"><a href="function.date-create.php" class="function">date_create()</a></span>,
   <span class="function"><a href="function.date-create-immutable.php" class="function">date_create_immutable()</a></span> и
   <span class="function"><a href="function.strtotime.php" class="function">strtotime()</a></span>.
  </p>
  <p class="para">
   Чтобы отформатировать объекты <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>,
   обратитесь к документации метода <span class="function"><a href="datetime.format.php" class="function">DateTimeInterface::format()</a></span>.
  </p>

  <table class="doctable table">
   <caption><strong>Символы форматирования даты</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><code class="literal">daysuf</code> (суффикс порядкового числительного дня месяца)</td>
      <td>&quot;st&quot; | &quot;nd&quot; | &quot;rd&quot; | &quot;th&quot;</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">dd</code> (день месяца без ведущих нулей)</td>
      <td>([0-2]?[0-9] | &quot;3&quot;[01]) <code class="literal">daysuf</code>?</td>
      <td>&quot;7th&quot;, &quot;22nd&quot;, &quot;31&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">DD</code> (день месяца, 2 цифры с ведущим нулём)</td>
      <td>&quot;0&quot; [0-9] | [1-2][0-9] | &quot;3&quot; [01]</td>
      <td>&quot;07&quot;, &quot;31&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">m</code> (полное или сокращённое название месяца)</td>
      <td>&#039;january&#039; | &#039;february&#039; | &#039;march&#039; | &#039;april&#039; | &#039;may&#039; | &#039;june&#039; |
       &#039;july&#039; | &#039;august&#039; | &#039;september&#039; | &#039;october&#039; | &#039;november&#039; | &#039;december&#039; |
       &#039;jan&#039; | &#039;feb&#039; | &#039;mar&#039; | &#039;apr&#039; | &#039;may&#039; | &#039;jun&#039; | &#039;jul&#039; | &#039;aug&#039; | &#039;sep&#039; |
       &#039;sept&#039; | &#039;oct&#039; | &#039;nov&#039; | &#039;dec&#039; | &quot;I&quot; | &quot;II&quot; | &quot;III&quot; | &quot;IV&quot; | &quot;V&quot; | &quot;VI&quot;
       | &quot;VII&quot; | &quot;VIII&quot; | &quot;IX&quot; | &quot;X&quot; | &quot;XI&quot; | &quot;XII&quot;</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">M</code> (сокращённое название месяца)</td>
      <td>&#039;jan&#039; | &#039;feb&#039; | &#039;mar&#039; | &#039;apr&#039; | &#039;may&#039; | &#039;jun&#039; | &#039;jul&#039; | &#039;aug&#039; |
       &#039;sep&#039; | &#039;sept&#039; | &#039;oct&#039; | &#039;nov&#039; | &#039;dec&#039;</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">mm</code> (порядковый номер месяца)</td>
      <td>&quot;0&quot;? [0-9] | &quot;1&quot;[0-2]</td>
      <td>&quot;0&quot;, &quot;04&quot;, &quot;7&quot;, &quot;12&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">MM</code> (порядковый номер месяца, 2 цифры с ведущим нулём)</td>
      <td>&quot;0&quot; [0-9] | &quot;1&quot;[0-2]</td>
      <td>&quot;00&quot;, &quot;04&quot;, &quot;07&quot;, &quot;12&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">y</code> (порядковый номер года)</td>
      <td>[0-9]{1,4}</td>
      <td>&quot;00&quot;, &quot;78&quot;, &quot;08&quot;, &quot;8&quot;, &quot;2008&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">yy</code> (порядковый номер года, 2 цифры)</td>
      <td>[0-9]{2}</td>
      <td>&quot;00&quot;, &quot;08&quot;, &quot;78&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">YY</code> (порядковый номер года, 4 цифры)</td>
      <td>[0-9]{4}</td>
      <td>&quot;2000&quot;, &quot;2008&quot;, &quot;1978&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">YYY</code></td>
      <td>[0-9]{5,19}</td>
      <td>&quot;81412&quot;, &quot;20192&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>Региональные нотации</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>Месяц и день в американской нотации</td>
      <td><code class="literal">mm</code> &quot;/&quot; <code class="literal">dd</code></td>
      <td>&quot;5/12&quot;, &quot;10/27&quot;</td>
     </tr>

     <tr>
      <td>Месяц, день и год в американской нотации</td>
      <td><code class="literal">mm</code> &quot;/&quot; <code class="literal">dd</code> &quot;/&quot; <code class="literal">y</code></td>
      <td>&quot;12/22/78&quot;, &quot;1/17/2006&quot;, &quot;1/17/6&quot;</td>
     </tr>

     <tr>
      <td>4 цифры года, месяц и день со слешем-разделителем</td>
      <td><code class="literal">YY</code> &quot;/&quot; <code class="literal">mm</code> &quot;/&quot; <code class="literal">dd</code></td>
      <td>&quot;2008/6/30&quot;, &quot;1978/12/22&quot;</td>
     </tr>

     <tr>
      <td>4 цифры года и месяц (GNU)</td>
      <td><code class="literal">YY</code> &quot;-&quot; <code class="literal">mm</code></td>
      <td>&quot;2008-6&quot;, &quot;2008-06&quot;, &quot;1978-12&quot;</td>
     </tr>

     <tr>
      <td>Год, месяц и день с дефисом-разделителем</td>
      <td><code class="literal">y</code> &quot;-&quot; <code class="literal">mm</code> &quot;-&quot; <code class="literal">dd</code></td>
      <td>&quot;2008-6-30&quot;, &quot;78-12-22&quot;, &quot;8-6-21&quot;</td>
     </tr>

     <tr>
      <td>День, месяц и 4 цифры года с разделителем в виде точки, символа табуляции или дефиса</td>
      <td><code class="literal">dd</code> [.\t-] <code class="literal">mm</code> [.-] <code class="literal">YY</code></td>
      <td>&quot;30-6-2008&quot;, &quot;22.12.1978&quot;</td>
     </tr>

     <tr>
      <td>День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции</td>
      <td><code class="literal">dd</code> [.\t] <code class="literal">mm</code> &quot;.&quot; <code class="literal">yy</code></td>
      <td>&quot;30.6.08&quot;, &quot;22.12.78&quot;</td>
     </tr>

     <tr>
      <td>День, название месяца и год</td>
      <td><code class="literal">dd</code> ([ \t.-])* <code class="literal">m</code> ([ \t.-])* <code class="literal">y</code></td>
      <td>&quot;30-June 2008&quot;, &quot;22DEC78&quot;, &quot;14 III 1879&quot;</td>
     </tr>

     <tr>
      <td>Название месяца и 4 цифры года (день месяца сбрасывается на 1)</td>
      <td><code class="literal">m</code> ([ \t.-])* <code class="literal">YY</code></td>
      <td>&quot;June 2008&quot;, &quot;DEC1978&quot;, &quot;March 1879&quot;</td>
     </tr>

     <tr>
      <td>4 цифры года и название месяца (день месяца сбрасывается на 1)</td>
      <td><code class="literal">YY</code> ([ \t.-])* <code class="literal">m</code></td>
      <td>&quot;2008 June&quot;, &quot;1978-XII&quot;, &quot;1879.MArCH&quot;</td>
     </tr>

     <tr>
      <td>Название месяца, день и год</td>
      <td><code class="literal">m</code> ([ .\t-])* <code class="literal">dd</code> [,.stndrh\t ]+ <code class="literal">y</code></td>
      <td>&quot;July 1st, 2008&quot;, &quot;April 17, 1790&quot;, &quot;May.9,78&quot;</td>
     </tr>

     <tr>
      <td>Название месяца и день</td>
      <td><code class="literal">m</code> ([ .\t-])* <code class="literal">dd</code> [,.stndrh\t ]*</td>
      <td>&quot;July 1st,&quot;, &quot;Apr 17&quot;, &quot;May.9&quot;</td>
     </tr>

     <tr>
      <td>День и название месяца</td>
      <td><code class="literal">dd</code> ([ .\t-])* <code class="literal">m</code></td>
      <td>&quot;1 July&quot;, &quot;17 Apr&quot;, &quot;9.May&quot;</td>
     </tr>

     <tr>
      <td>Сокращённое название месяца, день и год</td>
      <td><code class="literal">M</code> &quot;-&quot; <code class="literal">DD</code> &quot;-&quot; <code class="literal">y</code></td>
      <td>&quot;May-09-78&quot;, &quot;Apr-17-1790&quot;</td>
     </tr>

     <tr>
      <td>Год, сокращённое название месяца и день</td>
      <td><code class="literal">y</code> &quot;-&quot; <code class="literal">M</code> &quot;-&quot; <code class="literal">DD</code></td>
      <td>&quot;78-Dec-22&quot;, &quot;1814-MAY-17&quot;</td>
     </tr>

     <tr>
      <td>Только год</td>
      <td><code class="literal">YY</code></td>
      <td>&quot;1978&quot;, &quot;2008&quot;</td>
     </tr>

     <tr>
      <td>Год (расширенный, 5-19 цифр со знаком)</td>
      <td>[+-] <code class="literal">YYY</code></td>
      <td>&quot;-81120&quot;, &quot;+20192&quot;</td>
     </tr>

     <tr>
      <td>Только название месяца</td>
      <td><code class="literal">m</code></td>
      <td>&quot;March&quot;, &quot;jun&quot;, &quot;DEC&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>Нотации стандарта ISO8601</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>8 цифр (год, месяц и день)</td>
      <td><code class="literal">YY</code> <code class="literal">MM</code> <code class="literal">DD</code></td>
      <td>&quot;15810726&quot;, &quot;19780417&quot;, &quot;18140517&quot;</td>
     </tr>

     <tr>
      <td>8 цифр (год, месяц и день) со слешем-разделителем</td>
      <td><code class="literal">YY</code> &quot;/&quot; <code class="literal">MM</code> &quot;/&quot; <code class="literal">DD</code></td>
      <td>&quot;2008/06/30&quot;, &quot;1978/12/22&quot;</td>
     </tr>

     <tr>
      <td>2 цифры года, месяц и день с дефисом-разделителем</td>
      <td><code class="literal">yy</code> &quot;-&quot; <code class="literal">MM</code> &quot;-&quot; <code class="literal">DD</code></td>
      <td>&quot;08-06-30&quot;, &quot;78-12-22&quot;</td>
     </tr>

     <tr>
      <td>4 цифры года с необязательным знаком, месяц и день</td>
      <td>[+-]? <code class="literal">YY</code> &quot;-&quot; <code class="literal">MM</code> &quot;-&quot; <code class="literal">DD</code></td>
      <td>&quot;-0002-07-26&quot;, &quot;+1978-04-17&quot;, &quot;1814-05-17&quot;</td>
     </tr>

     <tr>
      <td>Пятизначный год с обязательным знаком, месяцем и днём</td>
      <td>[+-] <code class="literal">YYY</code> &quot;-&quot; <code class="literal">MM</code> &quot;-&quot; <code class="literal">DD</code></td>
      <td>&quot;-81120-02-26&quot;, &quot;+20192-04-17&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Форматы <code class="literal">y</code> и <code class="literal">yy</code> для годов меньше 100 обрабатываются
    в исключительных случаях при использовании символов <code class="literal">y</code>
    или <code class="literal">yy</code>. К году добавляется значение 2000, если год попадает
    в диапазон 0-69 (включительно). К году добавляется значение 1900, если год принадлежит
    диапазону 70-99 (включительно). Поэтому дата &quot;00-01-01&quot; интерпретируется как &quot;2000-01-01&quot;.
   </p>
  </p></blockquote>

  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Формат &quot;День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции&quot;
    (<code class="literal">dd</code> [.\t] <code class="literal">mm</code> &quot;.&quot; <code class="literal">yy</code>) работает только
    для годов из диапазона 61-99 (включительно). За пределами этого диапазона отдаётся
    предпочтение <em>формату времени</em> &quot;<code class="literal">HH</code> [.:]
    <code class="literal">MM</code> [.:] <code class="literal">SS</code>&quot;.
   </p>
  </p></blockquote>

  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Формат «Год (и только год)» надёжно работает, только если метод уже нашёл строку времени,
    иначе, если четыре цифры года соответствуют формату <code class="literal">HH</code> <code class="literal">MM</code>,
    вместо года устанавливаются эти два элемента даты.
   </p>
   <p class="para">
    Для согласованного разбора только года
    вызывают метод <span class="function"><a href="datetimeimmutable.createfromformat.php" class="function">DateTimeImmutable::createFromFormat()</a></span>
    со спецификатором <code class="literal">Y</code>.
   </p>
  </p></blockquote>

  <div class="caution"><strong class="caution">Предостережение</strong>
   <p class="para">
    Возможен выход за границы диапазона форматов <code class="literal">dd</code> и <code class="literal">DD</code>.
    День месяца с порядковым номером 0 подразумевает последний день предыдущего месяца
    в результате выхода за границы диапазона. Согласно написанному, &quot;2008-08-00&quot; равносильно
    &quot;2008-07-31&quot;, а &quot;2008-06-31&quot; соответствует &quot;2008-07-01&quot; (в июне всего 30 дней).
   </p>
   <p class="para">
    Обратите внимание на ограничение диапазона дней: 0-31, как указывает
    регулярное выражение в предыдущих параграфах. Поэтому дата наподобие &quot;2008-06-32&quot; некорректна.
   </p>
   <p class="para">
    Допускается также выход за границы диапазона для форматов <code class="literal">mm</code>
    и <code class="literal">MM</code> со значением 0. Значение месяца 0 соответствует декабрю
    предыдущего года. Например, дата &quot;2008-00-22&quot; равносильна &quot;2007-12-22&quot;.
   </p>
   <p class="para">
    Если учесть два предыдущих замечания и выход за границы диапазона дней и месяцев,
    получим следующее: дата &quot;2008-00-00&quot; в первую очередь преобразуется в &quot;2007-12-00&quot;,
    которая будет преобразована в &quot;2007-11-30&quot;. То же случится с датой &quot;0000-00-00&quot;, которая
    преобразуется к &quot;-0001-11-30&quot; (минус первый год в календаре ISO 8601 и 2 год до н. э.
    по григорианскому календарю).
   </p>
  </div>
 </div>
 

 
 <div id="datetime.formats.compound" class="sect1">
  <h2 class="title">Составные форматы</h2>

  <p class="para">
   Страница описывает разные составные форматы даты и времени
   в BNF-подобном синтаксисе, которые понимает парсер
   методов <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>,
   и функций <span class="function"><a href="function.date-create.php" class="function">date_create()</a></span>, <span class="function"><a href="function.date-create-immutable.php" class="function">date_create_immutable()</a></span>
   и <span class="function"><a href="function.strtotime.php" class="function">strtotime()</a></span>.
  </p>
  <p class="para">
   О форматировании объектов <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>
   рассказывает документация метода <span class="function"><a href="datetime.format.php" class="function">DateTimeInterface::format()</a></span>.
  </p>

  <table class="doctable table">
   <caption><strong>Символы составного форматирования</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Форматы</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><code class="literal">DD</code> (день месяца с ведущим нулём)</td>
      <td>&quot;0&quot; [0-9] | [1-2][0-9] | &quot;3&quot; [01]</td>
      <td>&quot;02&quot;, &quot;12&quot;, &quot;31&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">doy</code> (день в году)</td>
      <td>&quot;00&quot;[1-9] | &quot;0&quot;[1-9][0-9] | [1-2][0-9][0-9] | &quot;3&quot;[0-5][0-9] | &quot;36&quot;[0-6]</td>
      <td>&quot;001&quot;, &quot;012&quot;, &quot;180&quot;, &quot;350&quot;, &quot;366&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">frac</code> (дробная часть)</td>
      <td>. [0-9]+</td>
      <td>&quot;.21342&quot;, &quot;.85&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">hh</code> (часы)</td>
      <td>&quot;0&quot;?[1-9] | &quot;1&quot;[0-2]</td>
      <td>&quot;04&quot;, &quot;7&quot;, &quot;12&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">HH</code> (часы с ведущим нулём)</td>
      <td>[01][0-9] | &quot;2&quot;[0-4]</td>
      <td>&quot;04&quot;, &quot;07&quot;, &quot;19&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">meridian</code> (Ante meridiem или Post meridiem)</td>
      <td>[AaPp] .? [Mm] .? [\0\t ]</td>
      <td>&quot;A.m.&quot;, &quot;pM&quot;, &quot;am.&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">ii</code> (минуты)</td>
      <td>[0-5]?[0-9]</td>
      <td>&quot;04&quot;, &quot;8&quot;, &quot;59&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">II</code> (минуты с ведущим нулём)</td>
      <td>[0-5][0-9]</td>
      <td>&quot;04&quot;, &quot;08&quot;, &quot;59&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">M</code> (сокращённое наименование месяца)</td>
      <td>&#039;jan&#039; | &#039;feb&#039; | &#039;mar&#039; | &#039;apr&#039; | &#039;may&#039; | &#039;jun&#039; | &#039;jul&#039; | &#039;aug&#039; | &#039;sep&#039; | &#039;sept&#039; | &#039;oct&#039; | &#039;nov&#039; | &#039;dec&#039;</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">MM</code> (месяц с ведущим нулём)</td>
      <td>[0-1][0-9]</td>
      <td>&quot;00&quot;, &quot;12&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">space</code> (символ пробела или табуляции)</td>
      <td>[ \t]</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td><code class="literal">ss</code> (секунды)</td>
      <td>([0-5]?[0-9])|60</td>
      <td>&quot;04&quot;, &quot;8&quot;, &quot;59&quot;, &quot;60&quot; (дополнительная секунда)</td>
     </tr>

     <tr>
      <td><code class="literal">SS</code> (секунды с ведущим нулём)</td>
      <td>[0-5][0-9]</td>
      <td>&quot;04&quot;, &quot;08&quot;, &quot;59&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">W</code> (неделя в году)</td>
      <td>&quot;0&quot;[1-9] | [1-4][0-9] | &quot;5&quot;[0-3]</td>
      <td>&quot;05&quot;, &quot;17&quot;, &quot;53&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">tzcorrection</code> (смещение часового пояса)</td>
      <td>&quot;GMT&quot;? [+-] <code class="literal">hh</code> &quot;:&quot;? <code class="literal">II</code>?</td>
      <td>&quot;+0400&quot;, &quot;GMT-07:00&quot;, &quot;-07:00&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">YY</code> (4 цифры года)</td>
      <td>[0-9]{4}</td>
      <td>&quot;2000&quot;, &quot;2008&quot;, &quot;1978&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>Форматы стандартов</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>ATOM</td>
      <td>&quot;2022-06-02T16:58:35+00:00&quot;</td>
     </tr>

     <tr>
      <td>COOKIE</td>
      <td>&quot;Thursday, 02-Jun-2022 16:58:35 UTC&quot;</td>
     </tr>

     <tr>
      <td>ISO8601</td>
      <td>&quot;2022-06-02T16:58:35+0000&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc822" class="link external">&raquo;&nbsp;RFC 822</a></td>
      <td>&quot;Thu, 02 Jun 22 16:58:35 +0000&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc850" class="link external">&raquo;&nbsp;RFC 850</a></td>
      <td>&quot;Thursday, 02-Jun-22 16:58:35 UTC&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc1036" class="link external">&raquo;&nbsp;RFC 1036</a></td>
      <td>&quot;Thu, 02 Jun 22 16:58:35 +0000&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc1123" class="link external">&raquo;&nbsp;RFC 1123</a></td>
      <td>&quot;Thu, 02 Jun 2022 16:58:35 +0000&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc2822" class="link external">&raquo;&nbsp;RFC 2822</a></td>
      <td>&quot;Thu, 02 Jun 2022 16:58:35 +0000&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc3339" class="link external">&raquo;&nbsp;RFC 3339</a></td>
      <td>&quot;2022-06-02T16:58:35+00:00&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc3339" class="link external">&raquo;&nbsp;RFC 3339</a> Extended</td>
      <td>&quot;2022-06-02T16:58:35.698+00:00&quot;</td>
     </tr>

     <tr>
      <td><a href="https://datatracker.ietf.org/doc/html/rfc7231" class="link external">&raquo;&nbsp;RFC 7231</a></td>
      <td>&quot;Thu, 02 Jun 2022 16:58:35 GMT&quot;</td>
     </tr>

     <tr>
      <td>RSS</td>
      <td>&quot;Thu, 02 Jun 2022 16:58:35 +0000&quot;</td>
     </tr>

     <tr>
      <td>W3C</td>
      <td>&quot;2022-06-02T16:58:35+00:00&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>Региональные нотации</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>Общий формат log-записей</td>
      <td><code class="literal">dd</code> &quot;/&quot; <code class="literal">M</code> &quot;/&quot; <code class="literal">YY</code> : <code class="literal">HH</code> &quot;:&quot; <code class="literal">II</code> &quot;:&quot; <code class="literal">SS</code> <code class="literal">space</code> <code class="literal">tzcorrection</code></td>
      <td>&quot;10/Oct/2000:13:55:36 -0700&quot;</td>
     </tr>

     <tr>
      <td>EXIF</td>
      <td><code class="literal">YY</code> &quot;:&quot; <code class="literal">MM</code> &quot;:&quot; <code class="literal">DD</code> &quot; &quot; <code class="literal">HH</code> &quot;:&quot; <code class="literal">II</code> &quot;:&quot; <code class="literal">SS</code></td>
      <td>&quot;2008:08:07 18:11:31&quot;</td>
     </tr>

     <tr>
      <td>Год и неделя в формате ISO</td>
      <td><code class="literal">YY</code> &quot;-&quot;? &quot;W&quot; <code class="literal">W</code></td>
      <td>&quot;2008W27&quot;, &quot;2008-W28&quot;</td>
     </tr>

     <tr>
      <td>Год, неделя в формате ISO и день недели</td>
      <td><code class="literal">YY</code> &quot;-&quot;? &quot;W&quot; <code class="literal">W</code> &quot;-&quot;? [0-7]</td>
      <td>&quot;2008W273&quot;, &quot;2008-W28-3&quot;</td>
     </tr>

     <tr>
      <td>MySQL</td>
      <td><code class="literal">YY</code> &quot;-&quot; <code class="literal">MM</code> &quot;-&quot; <code class="literal">DD</code> &quot; &quot; <code class="literal">HH</code> &quot;:&quot; <code class="literal">II</code> &quot;:&quot; <code class="literal">SS</code></td>
      <td>&quot;2008-08-07 18:11:31&quot;</td>
     </tr>

     <tr>
      <td>PostgreSQL: год и день в году</td>
      <td><code class="literal">YY</code> &quot;.&quot;? <code class="literal">doy</code></td>
      <td>&quot;2008.197&quot;, &quot;2008197&quot;</td>
     </tr>

     <tr>
      <td>SOAP</td>
      <td><code class="literal">YY</code> &quot;-&quot; <code class="literal">MM</code> &quot;-&quot; <code class="literal">DD</code> &quot;T&quot; <code class="literal">HH</code> &quot;:&quot; <code class="literal">II</code> &quot;:&quot; <code class="literal">SS</code> <code class="literal">frac</code> <code class="literal">tzcorrection</code>?</td>
      <td>&quot;2008-07-01T22:35:17.02&quot;, &quot;2008-07-01T22:35:17.03+08:00&quot;</td>
     </tr>

     <tr>
      <td>Unix Timestamp</td>
      <td>&quot;@&quot; &quot;-&quot;? [0-9]+</td>
      <td>&quot;@1215282385&quot;</td>
     </tr>

     <tr>
      <td>Метка времени Unix с микросекундами</td>
      <td>&quot;@&quot; &quot;-&quot;? [0-9]+ &quot;.&quot; [0-9]{0,6}</td>
      <td>&quot;@1607974647.503686&quot;</td>
     </tr>

     <tr>
      <td>XMLRPC</td>
      <td><code class="literal">YY</code> <code class="literal">MM</code> <code class="literal">DD</code> &quot;T&quot; <code class="literal">hh</code> &quot;:&quot; <code class="literal">II</code> &quot;:&quot; <code class="literal">SS</code></td>
      <td>&quot;20080701T22:38:07&quot;, &quot;20080701T9:38:07&quot;</td>
     </tr>

     <tr>
      <td>XMLRPC (Compact)</td>
      <td><code class="literal">YY</code> <code class="literal">MM</code> <code class="literal">DD</code> &#039;t&#039; <code class="literal">hh</code> <code class="literal">II</code> <code class="literal">SS</code></td>
      <td>&quot;20080701t223807&quot;, &quot;20080701T093807&quot;</td>
     </tr>

     <tr>
      <td>WDDX</td>
      <td><code class="literal">YY</code> &quot;-&quot; <code class="literal">mm</code> &quot;-&quot; <code class="literal">dd</code> &quot;T&quot; <code class="literal">hh</code> &quot;:&quot; <code class="literal">ii</code> &quot;:&quot; <code class="literal">ss</code></td>
      <td>&quot;2008-7-1T9:3:37&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Символ &quot;W&quot; в форматах &quot;Год и неделя в формате ISO&quot; и &quot;Год, неделя в формате ISO и день
    недели&quot; чувствителен к регистру, символ &quot;W&quot; указывают только в верхнем
    регистре.
   </p>
   <p class="para">
    Символ &quot;T&quot; в форматах SOAP, XMLRPC и WDDX также чувствителен к регистру,
    символ &quot;T&quot; указывают только в верхнем регистре.
   </p>
   <p class="para">
    Формат &quot;Unix Timestamp&quot; устанавливает часовой пояс в UTC.
   </p>
  </p></blockquote>
 </div>
 

 
 <div id="datetime.formats.relative" class="sect1">
  <h2 class="title">Относительные форматы</h2>

  <p class="para">
   Страница описывает относительные форматы даты и времени в BNF-подобном синтаксисе, которые понимает парсер
   классов <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>,
   и функций <span class="function"><a href="function.date-create.php" class="function">date_create()</a></span>,
   <span class="function"><a href="function.date-create-immutable.php" class="function">date_create_immutable()</a></span>,
   <span class="function"><a href="function.strtotime.php" class="function">strtotime()</a></span>.
  </p>
  <p class="para">
   Объекты даты и времени <span class="classname"><a href="class.datetimeimmutable.php" class="classname">DateTimeImmutable</a></span> и <span class="classname"><a href="class.datetime.php" class="classname">DateTime</a></span>
   форматируют нотацией, которую описывает документация к методу <span class="function"><a href="datetime.format.php" class="function">DateTimeInterface::format()</a></span>.
  </p>

  <table class="doctable table">
   <caption><strong>Символы</strong></caption>
   
    <thead>
     <tr>
      <th>Описание</th>
      <th>Формат</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td><code class="literal">dayname</code> (название дня недели)</td>
      <td>
       &#039;sunday&#039; | &#039;monday&#039; | &#039;tuesday&#039; | &#039;wednesday&#039; | &#039;thursday&#039; |
       &#039;friday&#039; | &#039;saturday&#039; | &#039;sun&#039; | &#039;mon&#039; | &#039;tue&#039; | &#039;wed&#039; | &#039;thu&#039; | &#039;fri&#039; |
       &#039;sat&#039;
      </td>
     </tr>

     <tr>
      <td><code class="literal">daytext</code> (будние дни — пн–пт, без учёта праздничных дней)</td>
      <td>&#039;weekday&#039; | &#039;weekdays&#039;</td>
     </tr>

     <tr>
      <td><code class="literal">number</code> (числа)</td>
      <td>[+-]?[0-9]+</td>
     </tr>

     <tr>
      <td><code class="literal">ordinal</code> (порядковые числительные и относительные указатели)</td>
      <td>
       &#039;first&#039; | &#039;second&#039; | &#039;third&#039; | &#039;fourth&#039; | &#039;fifth&#039; | &#039;sixth&#039; |
       &#039;seventh&#039; | &#039;eighth&#039; | &#039;ninth&#039; | &#039;tenth&#039; | &#039;eleventh&#039; | &#039;twelfth&#039; |
       &#039;next&#039; | &#039;last&#039; | &#039;previous&#039; | &#039;this&#039;
      </td>
     </tr>

     <tr>
      <td><code class="literal">reltext</code> (относительные указатели)</td>
      <td>&#039;next&#039; | &#039;last&#039; | &#039;previous&#039; | &#039;this&#039;</td>
     </tr>

     <tr>
      <td><code class="literal">space</code> (символы пробела и табуляции)</td>
      <td>[ \t]+</td>
     </tr>

     <tr>
      <td><code class="literal">unit</code> (единицы измерения)</td>
      <td>
       &#039;ms&#039; | &#039;µs&#039; | (( &#039;msec&#039; | &#039;millisecond&#039; | &#039;µsec&#039; | &#039;microsecond&#039;
       | &#039;usec&#039; | &#039;sec&#039; | &#039;second&#039; | &#039;min&#039; | &#039;minute&#039; | &#039;hour&#039; | &#039;day&#039; |
       &#039;fortnight&#039; | &#039;forthnight&#039; | &#039;month&#039; | &#039;year&#039;) &#039;s&#039;?) | &#039;weeks&#039; |
       <code class="literal">daytext</code>
      </td>
     </tr>

    </tbody>
   
  </table>


  <table class="doctable table">
   <caption><strong>Обозначения на основе дней</strong></caption>
   
    <thead>
     <tr>
      <th>Формат</th>
      <th>Описание</th>
      <th>Примеры</th>
     </tr>

    </thead>

    <tbody class="tbody">
     <tr>
      <td>&#039;yesterday&#039;</td>
      <td>Полночь вчера</td>
      <td>&quot;yesterday 14:00&quot;</td>
     </tr>

     <tr>
      <td>&#039;midnight&#039;</td>
      <td>Время устанавливается в 00:00:00</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td>&#039;today&#039;</td>
      <td>Время устанавливается в 00:00:00</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td>&#039;now&#039;</td>
      <td>Текущее время</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td>&#039;noon&#039;</td>
      <td>Время устанавливается в 12:00:00</td>
      <td>&quot;yesterday noon&quot;</td>
     </tr>

     <tr>
      <td>&#039;tomorrow&#039;</td>
      <td>Полночь завтра</td>
      <td class="empty">&nbsp;</td>
     </tr>

     <tr>
      <td>&#039;back of&#039; <code class="literal">hour</code></td>
      <td>15 минут заданного часа</td>
      <td>&quot;back of 7pm&quot;, &quot;back of 15&quot;</td>
     </tr>

     <tr>
      <td>&#039;front of&#039; <code class="literal">hour</code></td>
      <td>Без 15 минут заданный час</td>
      <td>&quot;front of 5am&quot;, &quot;front of 23&quot;</td>
     </tr>

     <tr>
      <td>&#039;first day of&#039;</td>
      <td>
       Устанавливает первый день текущего месяца. Обычно эту нотацию лучше использовать
       вместе с названием месяца, следующим за ней, иначе будет учитываться текущий месяц.
      </td>
      <td>&quot;first day of January 2008&quot;</td>
     </tr>

     <tr>
      <td>&#039;last day of&#039;</td>
      <td>
       Устанавливает последний день текущего месяца. Обычно эту нотацию лучше использовать
       вместе с названием месяца, следующим за ней, иначе будет учитываться текущий месяц.
      </td>
      <td>&quot;last day of next month&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">ordinal</code> <code class="literal">space</code> <code class="literal">dayname</code> <code class="literal">space</code> &#039;of&#039;</td>
      <td>Вычисляет <code class="literal">x</code> день недели текущего или заданного месяца.</td>
      <td>&quot;first sat of July 2008&quot;</td>
     </tr>

     <tr>
      <td>&#039;last&#039; <code class="literal">space</code> <code class="literal">dayname</code> <code class="literal">space</code> &#039;of&#039;</td>
      <td>Вычисляет <em>последний</em> день недели текущего или заданного месяца.</td>
      <td>&quot;last sat of July 2008&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">number</code> <code class="literal">space</code>? (<code class="literal">unit</code> | &#039;week&#039;)</td>
      <td>Вычисляет относительное время при использовании числовых значений периода.</td>
      <td>&quot;+5 weeks&quot;, &quot;12 day&quot;, &quot;-7 weekdays&quot;</td>
     </tr>

     <tr>
      <td>(<code class="literal">ordinal</code> | <code class="literal">reltext</code>) <code class="literal">space</code> <code class="literal">unit</code></td>
      <td>Вычисляет относительное время при использовании строковых значений периода.
       <code class="literal">last</code> и <code class="literal">previous</code> то же, что и
       <code class="literal">-1</code>, <code class="literal">this</code> ни на что не влияет, а
       <code class="literal">next</code> – <code class="literal">+1</code>.
      </td>
      <td>&quot;fifth day&quot;, &quot;second month&quot;, &quot;last day&quot;, &quot;previous year&quot;</td>
     </tr>

     <tr>
      <td>&#039;ago&#039;</td>
      <td>Вычитает все значения из последнего полученного момента времени.</td>
      <td>&quot;2 days ago&quot;, &quot;8 days ago 14:00&quot;, &quot;2 months 5 days ago&quot;, &quot;2 months ago 5 days&quot;, &quot;2 days ago ago&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">dayname</code></td>
      <td>
       Перемещается на следующий день указанного дня недели. (Смотрите <a href="datetime.formats.php#datetime.formats.relative.dayname-note" class="link">замечание</a>)
      </td>
      <td>&quot;Monday&quot;</td>
     </tr>

     <tr>
      <td><code class="literal">reltext</code> <code class="literal">space</code> &#039;week&#039;</td>
      <td>Разбирает специфичный формат &quot;weekday + last/this/next week&quot;.</td>
      <td>&quot;Monday next week&quot;</td>
     </tr>

    </tbody>
   
  </table>


  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Относительные выражения обрабатываются только <em>после</em> неотносительных.
    Например, &quot;+1 week july 2008&quot; эквивалентно &quot;july 2008 +1 week&quot;.
   </p>
   <p class="para">
    Исключение из этого правила составляют: &quot;yesterday&quot;, &quot;midnight&quot;, &quot;today&quot;, &quot;noon&quot; и &quot;tomorrow&quot;.
    Записи &quot;tomorrow 11:00&quot; и &quot;11:00 tomorrow&quot; отличаются. Если принять сегодняшнюю дату за &quot;July 23rd, 2008&quot;,
    то первая запись возвращает &quot;2008-07-24 11:00&quot;, а вторая &quot;2008-07-24 00:00&quot;. Причина такого поведения в том,
    что эти пять выражений влияют непосредственно на время.
   </p>
   <p class="para">
    Ключевые слова наподобие &quot;first day of&quot; зависят от контекста строки относительного формата.
    Для строк в статическом методе или функции референтом станет текущая системная метка времени,
    но методе <span class="function"><a href="datetime.modify.php" class="function">DateTime::modify()</a></span>
    или <span class="function"><a href="datetimeimmutable.modify.php" class="function">DateTimeImmutable::modify()</a></span>
    референтом станет объект, на котором вызывается метод <code class="literal">modify()</code>.
   </p>
  </p></blockquote>

  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para" id="datetime.formats.relative.dayname-note">
    Следует обратить внимание на следующие замечания относительно текущего дня недели и дня недели,
    который указали в строке даты и времени. Текущий день недели вычисляется из независимой части строки
    даты и времени.
   </p>
   <ol type="1">
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">dayname</code>&quot; <em>не</em> сдвигает дату на другой день.
      (Например: &quot;Wed July 23rd, 2008&quot; означает &quot;2008-07-23&quot;).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">number</code> <code class="literal">dayname</code>&quot; <em>не</em> сдвигает дату
      на другой день. (Например: &quot;1 wednesday july 23rd, 2008&quot; означает &quot;2008-07-23&quot;).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">number</code> week <code class="literal">dayname</code>&quot; добавляет соответствующее число недель,
      но <em>не</em> сдвигает дату на другой день. В этом случае имеют место два различных блока
      &quot;<code class="literal">number</code> week&quot; и &quot;<code class="literal">dayname</code>&quot;.
      (Например: &quot;+1 week wednesday july 23rd, 2008&quot; означает &quot;2008-07-30&quot;).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">ordinal</code> <code class="literal">dayname</code>&quot; <em>сдвигает</em> дату
      на другой день. (Например: &quot;last wednesday july 23rd, 2008&quot; означает &quot;2008-07-30&quot;).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">number</code> week <code class="literal">ordinal</code> <code class="literal">dayname</code>&quot;
      добавляет число недель, которое соответствует символу числа, а затем <em>сдвигает</em> дату на другой день.
      В этом случае имеют место два различных блока &quot;<code class="literal">number</code> week&quot;
      и &quot;<code class="literal">ordinal</code> <code class="literal">dayname</code>&quot;.
      (Например: &quot;+1 week first wednesday july 23rd, 2008&quot; означает &quot;2008-08-06&quot;).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">ordinal</code> <code class="literal">dayname</code> &#039;of&#039; &quot; <em>не</em> сдвигает дату
      на другой день. (Например: &quot;first wednesday of july 23rd, 2008&quot; означает &quot;2008-07-02&quot;, потому как
      определённые фразы с &#039;of&#039; сбрасывают день месяца на &#039;1&#039; и в этом случае игнорируется &#039;23rd&#039;).
     </span>
    </li>
   </ol>
   <p class="para">
    Также следует обратить внимание, что &quot;of&quot; в &quot;<code class="literal">ordinal</code>
    <code class="literal">space</code> <code class="literal">dayname</code>
    <code class="literal">space</code> &#039;of&#039; &quot; и &quot;&#039;last&#039; <code class="literal">space</code>
    <code class="literal">dayname</code> <code class="literal">space</code> &#039;of&#039; &quot; имеет особый смысл.
   </p>
   <ol type="1">
    <li class="listitem">
     <span class="simpara">
      Устанавливает для дня месяца значение 1.
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">ordinal</code> <code class="literal">dayname</code> &#039;of&#039; &quot;<em>не</em> сдвигает дату
      на другой день. (Например: &quot;first tuesday of july 2008&quot; означает &quot;2008-07-01&quot;).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;<code class="literal">ordinal</code> <code class="literal">dayname</code>&quot; <em>сдвигает</em> дату на другой день.
      (Например: &quot;first tuesday july 2008&quot; означает &quot;2008-07-08&quot;, смотрите также 4-й пункт предыдущего замечания).
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;&#039;last&#039; <code class="literal">dayname</code> &#039;of&#039; &quot; получает последний в месяце <code class="literal">dayname</code>.
      (Например: &quot;last wed of july 2008&quot; означает &quot;2008-07-30&quot;)
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;&#039;last&#039; <code class="literal">dayname</code>&quot; получает последний <code class="literal">dayname</code> перед текущим днём.
      (Например: &quot;last wed july 2008&quot; означает &quot;2008-06-25&quot;; &quot;july 2008&quot; устанавливает дату в &quot;2008-07-01&quot;,
      а после &quot;last wed&quot; смещает дату к предыдущей среде, а именно к &quot;2008-06-25&quot;).
     </span>
    </li>
   </ol>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Относительные значения в месяцах рассчитываются на основе продолжительности месяца.
    Например, из &quot;+2 month 2011-11-30&quot; получится &quot;2012-01-30&quot;.
    Это связано с тем, что ноябрь состоит из 30 дней, а декабрь из 31 дня, что составляет 61 день.
   </p>
  </p></blockquote>
  <blockquote class="note"><p><strong class="note">Замечание</strong>: 
   <p class="para">
    Под числом (<code class="literal">number</code>) подразумевается целое число
    (<em>integer</em>); десятичная точка (или запятая) рассматривается как разделитель,
    если указали десятичное число.
    Например, <code class="literal">&#039;+1.5 hours&#039;</code> посчитается
    как <code class="literal">&#039;+1 5 hours&#039;</code>, а не <code class="literal">&#039;+1 hour +30 minutes&#039;</code>.
     </p>
  </p></blockquote>

  <div class="sect2">
   <h3 class="title">Список изменений</h3>
   <p class="para">
    <table class="doctable informaltable">
     
      <thead>
       <tr>
        <th>Версия</th>
        <th>Описание</th>
       </tr>

      </thead>

      <tbody class="tbody">
       <tr>
        <td>8.4.0</td>
        <td>
         Символы <code class="literal">number</code> теперь снова принимают последовательность знаков плюс
         и минус в записях наподобие <code class="literal">+-2</code>, и другие комбинации
         множественных знаков.
        </td>
       </tr>

       <tr>
        <td>8.2.0</td>
        <td>
         Символы <code class="literal">number</code> больше не принимают последовательность знаков плюс
         и минус, поэтому запись наподобие <code class="literal">+-2</code> недопустима.
        </td>
       </tr>

       <tr>
        <td>7.0.8</td>
        <td>
         Недели начинаются только с понедельника. Раньше разрешалось определять
         начало недели с воскресенья.
        </td>
       </tr>

      </tbody>
     
    </table>

   </p>
  </div>
 </div>
 

</div>
<?php manual_footer($setup); ?>