1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
archived-doc-ru/reference/datetime/formats.xml
Mikhail Alferov 71033720d9 Update datetime* to En (#1131)
* Update book.xml to en

* Update dateperiod.xml to en

* Update formats.xml to en

* Update construct.xml to en

* Update createfromdatestring.xml to en

* Update format.xml to en

* Update createfromiso8601string.xml to en

* Update getdateinterval.xml to en

* Update getenddate.xml to en

* Update getrecurrences.xml to en

* Update getstartdate.xml to en

* Update dateperiod.xml

* Update formats.xml

* Update construct.xml

* Update createfromdatestring.xml

* Update format.xml

* Update createfromiso8601string.xml

* Update getdateinterval.xml

* Update getenddate.xml

* Update getrecurrences.xml

* Update getstartdate.xml

* Update createfromimmutable.xml to en

* Update createfromimmutable.xml

* Update createfromimmutable.xml

* Update createfrominterface.xml to en

* Update modify.xml to en

* Update settimezone.xml to en

* Update construct.xml to en

* Update createfrominterface.xml

* Update createfrominterface.xml to en

* Update createfrominterface.xml

* Update createfrommutable.xml to en

* Update getlasterrors.xml to en

* Update modify.xml to en

* Update setdate.xml to en

* Update setisodate.xml to en

* Update settime.xml to en

* Update settimestamp.xml to en

* Update settimezone.xml to en

* Update sub.xml to en

* Update diff.xml to en

* Update format.xml to En

* Update getoffset.xml to en

* Update format.xml

* Update gettimestamp.xml to en

* Update gettimezone.xml to en

* Update serialize.xml to en

* Update unserialize.xml to en

* Update construct.xml to en

* Update getlocation.xml to en

* Update getoffset.xml to en

* Update getoffset.xml Само обновление

* Update gettransitions.xml to en

* Update listabbreviations.xml to en

* Update checkdate.xml to en

* Update date-default-timezone-get.xml to en

* Update date-default-timezone-set.xml to en

* Update date-parse-from-format.xml to en

* Update date-parse.xml to en

* Update date-parse-from-format.xml

* Update date-sun-info.xml to en

* Update date-sunrise.xml to en

* Update date-sunset.xml to en

* Update date.xml to en

* Update getdate.xml to en

* Update gettimeofday.xml to en

* Update date-parse-from-format.xml

* Update getoffset.xml

* Update gettransitions.xml

* Update diff.xml

* Update getoffset.xml

* Update gmdate.xml to en

* Update gmmktime.xml to en

* Update gmstrftime.xml to en

* Update idate.xml to en

* Update localtime.xml to en

* Update microtime.xml  to en

* Update microtime.xml

* Update mktime.xml to en

* Update strftime.xml to en

* Update strptime.xml to en

* Update strtotime.xml to en

* Update time.xml to en

* Update timezone-name-from-abbr.xml to en

* Update timezone-version-get.xml to en

* Update construct.xml Sync rev ID

* Update getlasterrors.xml stync rev id

* Update gettransitions.xml fix xml styntax error

* Update idate.xml fix xml syntax error
2025-11-25 21:49:28 +03:00

1227 lines
53 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 3a8c3e77df070a046c9d5b56b68926ca2d7e5ee3 Maintainer: aur Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="datetime.formats" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>Допустимые форматы даты и времени</title>
<para>
Раздел описывает разные форматы в BNF-подобном синтаксисе, которые принимает парсер:
<classname>DateTimeImmutable</classname>, <classname>DateTime</classname>,
<function>date_create_immutable</function>,
<function>date_create</function>, <function>date_parse</function>
и <function>strtotime</function>. Форматы сгруппированы
по разделам. В большей части случаев форматы из разных разделов, разделённые
пробелом, запятой или точкой, разрешается указывать в одной и той же строке даты и времени. Для каждого
поддерживаемого формата приводится один или ряд примеров,
и описание формата. Символы в одинарных кавычках нечувствительны к регистру
(<literal>'t'</literal> эквивалентно как <literal>t</literal>, так и <literal>T</literal>),
символы в двойных кавычках чувствительны к регистру
(<literal>"T"</literal> означает только <literal>T</literal>).
</para>
<para>
О форматировании объектов <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>
рассказывает документация метода <function>DateTimeInterface::format</function>.
</para>
<para>
При форматировании дат рекомендуют учитывать общие правила.
</para>
<orderedlist>
<listitem>
<simpara>
Парсер разрешает для каждой единицы измерения (год, месяц, день, час, минута, секунда) полный диапазон значений.
Для года — 4 цифры, для месяца — 0-12, дня — 0-31, для часа — 0-24, а для минуты — 0-59.
</simpara>
</listitem>
<listitem>
<simpara>
Для секунд допускается значение 60, поскольку иногда появляются строки даты с високосной секундой.
Но PHP реализует Unix-время, в котором значение "60" недопустимо для числа секунд, и поэтому возникает переполнение.
</simpara>
</listitem>
<listitem>
<simpara>
Функция <function>strtotime</function> возвращает значение &false;, если какое-либо число выходит за пределы диапазонов,
а конструктор <function>DateTimeImmutable::__construct</function> выбрасывает исключение.
</simpara>
</listitem>
<listitem>
<simpara>
Каждый элемент времени сбрасывается на 0, если строка содержит дату.
</simpara>
</listitem>
<listitem>
<simpara>
Каждый менее значимый элемент времени сбрасывается до 0,
если строка содержит какую-либо часть времени.
</simpara>
</listitem>
<listitem>
<simpara>
Парсер только разбирает строку и не выполняет проверок, чтобы работать быстро и универсально.
</simpara>
</listitem>
<listitem>
<simpara>
Кроме правил для отдельных элементов времени синтаксический анализатор
понимает и более специфические <link linkend="datetime.formats.compound">комбинированные форматы</link>
наподбие разбора меток Unix-времени — <literal>@1690388256</literal>
и дат недели в формате ISO — <literal>2008-W28-3</literal>.
</simpara>
</listitem>
<listitem>
<para>
Неверные даты проверяются отдельно:
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$res = date_parse("2015-09-31");
var_dump($res["warnings"]);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
array(1) {
[11] =>
string(27) "The parsed date was invalid"
}
]]>
</screen>
</informalexample>
</para>
</listitem>
<listitem>
<para>
Крайние случаи уже обрабатывают, для этого вызывают
метод <function>DateTimeImmutable::createFromFormat</function>
и указывают правильный формат.
<informalexample>
<programlisting role="php">
<![CDATA[
<?php
$res = DateTimeImmutable::createFromFormat("Y-m-d", "2015-09-34");
var_dump($res);
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
object(DateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2015-10-04 17:24:43.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(13) "Europe/London"
}
]]>
</screen>
</informalexample>
</para>
</listitem>
</orderedlist>
<!--Time Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.time">
<title>Форматы времени</title>
<para>
Страница описывает форматы даты и времени в BNF-подобном синтаксисе, которые понимает парсер
методов <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>,
и функций <function>date_create</function>,
<function>date_create_immutable</function>
и <function>strtotime</function>.
</para>
<para>
О форматировании объектов <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>
рассказывает документация метода <function>DateTimeInterface::format</function>.
</para>
<table>
<title>Символы форматирования времени</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>frac</literal> (дробная часть)</entry>
<entry>. [0-9]+</entry>
<entry>".21342", ".85"</entry>
</row>
<row>
<entry><literal>hh</literal> (часы в 12-часовом формате)</entry>
<entry>"0"?[1-9] | "1"[0-2]</entry>
<entry>"04", "7", "12"</entry>
</row>
<row>
<entry><literal>HH</literal> (часы в 24-часовом формате)</entry>
<entry>[01][0-9] | "2"[0-4]</entry>
<entry>"04", "07", "19"</entry>
</row>
<row>
<entry><literal>meridian</literal> (Ante meridiem или Post meridiem)</entry>
<entry>[AaPp] .? [Mm] .? [\0\t ]</entry>
<entry>"A.m.", "pM", "am."</entry>
</row>
<row>
<entry><literal>MM</literal> (минуты)</entry>
<entry>[0-5][0-9]</entry>
<entry>"00", "12", "59"</entry>
</row>
<row>
<entry><literal>II</literal> (секунды)</entry>
<entry>[0-5][0-9]</entry>
<entry>"00", "12", "59"</entry>
</row>
<row>
<entry><literal>space</literal> (символ пробела или табуляции)</entry>
<entry>[ \t]</entry>
<entry></entry>
</row>
<row>
<entry><literal>tz</literal> (часовой пояс)</entry>
<entry>"("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+</entry>
<entry>"CEST", "Europe/Amsterdam", "America/Indiana/Knox"</entry>
</row>
<row>
<entry><literal>tzcorrection</literal> (числовое значение смещения часового пояса)</entry>
<entry>"GMT"? [+-] <literal>hh</literal> ":"? <literal>MM</literal>?</entry>
<entry>"+0400", "GMT-07:00", "-07:00"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>12-часовой формат</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry>Только часы (с Ante meridiem или Post meridiem)</entry>
<entry><literal>hh</literal> <literal>space</literal>? <literal>meridian</literal></entry>
<entry>"4 am", "5PM"</entry>
</row>
<row>
<entry>Часы и минуты (с <literal>Ante meridiem</literal> или <literal>Post meridiem</literal>)</entry>
<entry><literal>hh</literal> [.:] <literal>MM</literal> <literal>space</literal>? <literal>meridian</literal></entry>
<entry>"4:08 am", "7:19P.M."</entry>
</row>
<row>
<entry>Часы, минуты и секунды (с <literal>Ante meridiem</literal> или <literal>Post meridiem</literal>)</entry>
<entry><literal>hh</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>space</literal>? <literal>meridian</literal></entry>
<entry>"4:08:37 am", "7:19:19P.M."</entry>
</row>
<row>
<entry>MS SQL (Часы, минуты, секунды и дробная часть с Ante meridiem или Post meridiem)</entry>
<entry><literal>hh</literal> ":" <literal>MM</literal> ":" <literal>II</literal> [.:] [0-9]+ <literal>meridian</literal></entry>
<entry>"4:08:39:12313am"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>24-часовой формат</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry>Часы и минуты</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal></entry>
<entry>"04:08", "19.19", "T23:43"</entry>
</row>
<row>
<entry>Часы и минуты (без двоеточия-разделителя)</entry>
<entry>'t'? <literal>HH</literal> <literal>MM</literal></entry>
<entry>"0408", "t1919", "T2343"</entry>
</row>
<row>
<entry>Часы, минуты и секунды</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal></entry>
<entry>"04.08.37", "t19:19:19"</entry>
</row>
<row>
<entry>Часы, минуты и секунды (без двоеточия-разделителя)</entry>
<entry>'t'? <literal>HH</literal> <literal>MM</literal> <literal>II</literal></entry>
<entry>"040837", "T191919"</entry>
</row>
<row>
<entry>Часы, минуты, секунды и часовой пояс</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>space</literal>? ( <literal>tzcorrection</literal> | <literal>tz</literal> )</entry>
<entry>"040837CEST", "T191919-0700"</entry>
</row>
<row>
<entry>Часы, минуты, секунды и дробная часть</entry>
<entry>'t'? <literal>HH</literal> [.:] <literal>MM</literal> [.:] <literal>II</literal> <literal>frac</literal></entry>
<entry>"04.08.37.81412", "19:19:19.532453"</entry>
</row>
<row>
<entry>Сведения о часовом поясе</entry>
<entry><literal>tz</literal> | <literal>tzcorrection</literal></entry>
<entry>"CEST", "Europe/Amsterdam", "+0430", "GMT-06:00"</entry>
</row>
</tbody>
</tgroup>
</table>
</sect1>
<!--}}}-->
<!--Date Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.date">
<title>Форматы даты</title>
<para>
Эта страница описывает форматы даты в BNF-подобном синтаксисе, которые понимает парсер функций:
<classname>DateTimeImmutable</classname>, <classname>DateTime</classname>,
<function>date_create</function>,
<function>date_create_immutable</function> и
<function>strtotime</function>.
</para>
<para>
Чтобы отформатировать объекты <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>,
обратитесь к документации метода <function>DateTimeInterface::format</function>.
</para>
<table>
<title>Символы форматирования даты</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>daysuf</literal> (суффикс порядкового числительного дня месяца)</entry>
<entry>"st" | "nd" | "rd" | "th"</entry>
<entry></entry>
</row>
<row>
<entry><literal>dd</literal> (день месяца без ведущих нулей)</entry>
<entry>([0-2]?[0-9] | "3"[01]) <literal>daysuf</literal>?</entry>
<entry>"7th", "22nd", "31"</entry>
</row>
<row>
<entry><literal>DD</literal> (день месяца, 2 цифры с ведущим нулём)</entry>
<entry>"0" [0-9] | [1-2][0-9] | "3" [01]</entry>
<entry>"07", "31"</entry>
</row>
<row>
<entry><literal>m</literal> (полное или сокращённое название месяца)</entry>
<entry>'january' | 'february' | 'march' | 'april' | 'may' | 'june' |
'july' | 'august' | 'september' | 'october' | 'november' | 'december' |
'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' |
'sept' | 'oct' | 'nov' | 'dec' | "I" | "II" | "III" | "IV" | "V" | "VI"
| "VII" | "VIII" | "IX" | "X" | "XI" | "XII"</entry>
<entry></entry>
</row>
<row>
<entry><literal>M</literal> (сокращённое название месяца)</entry>
<entry>'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' |
'sep' | 'sept' | 'oct' | 'nov' | 'dec'</entry>
<entry></entry>
</row>
<row>
<entry><literal>mm</literal> (порядковый номер месяца)</entry>
<entry>"0"? [0-9] | "1"[0-2]</entry>
<entry>"0", "04", "7", "12"</entry>
</row>
<row>
<entry><literal>MM</literal> (порядковый номер месяца, 2 цифры с ведущим нулём)</entry>
<entry>"0" [0-9] | "1"[0-2]</entry>
<entry>"00", "04", "07", "12"</entry>
</row>
<row>
<entry><literal>y</literal> (порядковый номер года)</entry>
<entry>[0-9]{1,4}</entry>
<entry>"00", "78", "08", "8", "2008"</entry>
</row>
<row>
<entry><literal>yy</literal> (порядковый номер года, 2 цифры)</entry>
<entry>[0-9]{2}</entry>
<entry>"00", "08", "78"</entry>
</row>
<row>
<entry><literal>YY</literal> (порядковый номер года, 4 цифры)</entry>
<entry>[0-9]{4}</entry>
<entry>"2000", "2008", "1978"</entry>
</row>
<row>
<entry><literal>YYY</literal></entry>
<entry>[0-9]{5,19}</entry>
<entry>"81412", "20192"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Региональные нотации</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry>Месяц и день в американской нотации</entry>
<entry><literal>mm</literal> "/" <literal>dd</literal></entry>
<entry>"5/12", "10/27"</entry>
</row>
<row>
<entry>Месяц, день и год в американской нотации</entry>
<entry><literal>mm</literal> "/" <literal>dd</literal> "/" <literal>y</literal></entry>
<entry>"12/22/78", "1/17/2006", "1/17/6"</entry>
</row>
<row>
<entry>4 цифры года, месяц и день со слешем-разделителем</entry>
<entry><literal>YY</literal> "/" <literal>mm</literal> "/" <literal>dd</literal></entry>
<entry>"2008/6/30", "1978/12/22"</entry>
</row>
<row>
<entry>4 цифры года и месяц (GNU)</entry>
<entry><literal>YY</literal> "-" <literal>mm</literal></entry>
<entry>"2008-6", "2008-06", "1978-12"</entry>
</row>
<row>
<entry>Год, месяц и день с дефисом-разделителем</entry>
<entry><literal>y</literal> "-" <literal>mm</literal> "-" <literal>dd</literal></entry>
<entry>"2008-6-30", "78-12-22", "8-6-21"</entry>
</row>
<row>
<entry>День, месяц и 4 цифры года с разделителем в виде точки, символа табуляции или дефиса</entry>
<entry><literal>dd</literal> [.\t-] <literal>mm</literal> [.-] <literal>YY</literal></entry>
<entry>"30-6-2008", "22.12.1978"</entry>
</row>
<row>
<entry>День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции</entry>
<entry><literal>dd</literal> [.\t] <literal>mm</literal> "." <literal>yy</literal></entry>
<entry>"30.6.08", "22.12.78"</entry>
</row>
<row>
<entry>День, название месяца и год</entry>
<entry><literal>dd</literal> ([ \t.-])* <literal>m</literal> ([ \t.-])* <literal>y</literal></entry>
<entry>"30-June 2008", "22DEC78", "14 III 1879"</entry>
</row>
<row>
<entry>Название месяца и 4 цифры года (день месяца сбрасывается на 1)</entry>
<entry><literal>m</literal> ([ \t.-])* <literal>YY</literal></entry>
<entry>"June 2008", "DEC1978", "March 1879"</entry>
</row>
<row>
<entry>4 цифры года и название месяца (день месяца сбрасывается на 1)</entry>
<entry><literal>YY</literal> ([ \t.-])* <literal>m</literal></entry>
<entry>"2008 June", "1978-XII", "1879.MArCH"</entry>
</row>
<row>
<entry>Название месяца, день и год</entry>
<entry><literal>m</literal> ([ .\t-])* <literal>dd</literal> [,.stndrh\t ]+ <literal>y</literal></entry>
<entry>"July 1st, 2008", "April 17, 1790", "May.9,78"</entry>
</row>
<row>
<entry>Название месяца и день</entry>
<entry><literal>m</literal> ([ .\t-])* <literal>dd</literal> [,.stndrh\t ]*</entry>
<entry>"July 1st,", "Apr 17", "May.9"</entry>
</row>
<row>
<entry>День и название месяца</entry>
<entry><literal>dd</literal> ([ .\t-])* <literal>m</literal></entry>
<entry>"1 July", "17 Apr", "9.May"</entry>
</row>
<row>
<entry>Сокращённое название месяца, день и год</entry>
<entry><literal>M</literal> "-" <literal>DD</literal> "-" <literal>y</literal></entry>
<entry>"May-09-78", "Apr-17-1790"</entry>
</row>
<row>
<entry>Год, сокращённое название месяца и день</entry>
<entry><literal>y</literal> "-" <literal>M</literal> "-" <literal>DD</literal></entry>
<entry>"78-Dec-22", "1814-MAY-17"</entry>
</row>
<row>
<entry>Только год</entry>
<entry><literal>YY</literal></entry>
<entry>"1978", "2008"</entry>
</row>
<row>
<entry>Год (расширенный, 5-19 цифр со знаком)</entry>
<entry>[+-] <literal>YYY</literal></entry>
<entry>"-81120", "+20192"</entry>
</row>
<row>
<entry>Только название месяца</entry>
<entry><literal>m</literal></entry>
<entry>"March", "jun", "DEC"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Нотации стандарта ISO8601</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry>8 цифр (год, месяц и день)</entry>
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal></entry>
<entry>"15810726", "19780417", "18140517"</entry>
</row>
<row>
<entry>8 цифр (год, месяц и день) со слешем-разделителем</entry>
<entry><literal>YY</literal> "/" <literal>MM</literal> "/" <literal>DD</literal></entry>
<entry>"2008/06/30", "1978/12/22"</entry>
</row>
<row>
<entry>2 цифры года, месяц и день с дефисом-разделителем</entry>
<entry><literal>yy</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
<entry>"08-06-30", "78-12-22"</entry>
</row>
<row>
<entry>4 цифры года с необязательным знаком, месяц и день</entry>
<entry>[+-]? <literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
<entry>"-0002-07-26", "+1978-04-17", "1814-05-17"</entry>
</row>
<row>
<entry>Пятизначный год с обязательным знаком, месяцем и днём</entry>
<entry>[+-] <literal>YYY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal></entry>
<entry>"-81120-02-26", "+20192-04-17"</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
Форматы <literal>y</literal> и <literal>yy</literal> для годов меньше 100 обрабатываются
в исключительных случаях при использовании символов <literal>y</literal>
или <literal>yy</literal>. К году добавляется значение 2000, если год попадает
в диапазон 0-69 (включительно). К году добавляется значение 1900, если год принадлежит
диапазону 70-99 (включительно). Поэтому дата "00-01-01" интерпретируется как "2000-01-01".
</para>
</note>
<note>
<para>
Формат "День, месяц и 2 цифры года с разделителем в виде точки или символа табуляции"
(<literal>dd</literal> [.\t] <literal>mm</literal> "." <literal>yy</literal>) работает только
для годов из диапазона 61-99 (включительно). За пределами этого диапазона отдаётся
предпочтение <emphasis>формату времени</emphasis> "<literal>HH</literal> [.:]
<literal>MM</literal> [.:] <literal>SS</literal>".
</para>
</note>
<note>
<para>
Формат «Год (и только год)» надёжно работает, только если метод уже нашёл строку времени,
иначе, если четыре цифры года соответствуют формату <literal>HH</literal> <literal>MM</literal>,
вместо года устанавливаются эти два элемента даты.
</para>
<para>
Для согласованного разбора только года
вызывают метод <function>DateTimeImmutable::createFromFormat</function>
со спецификатором <literal>Y</literal>.
</para>
</note>
<caution>
<para>
Возможен выход за границы диапазона форматов <literal>dd</literal> и <literal>DD</literal>.
День месяца с порядковым номером 0 подразумевает последний день предыдущего месяца
в результате выхода за границы диапазона. Согласно написанному, "2008-08-00" равносильно
"2008-07-31", а "2008-06-31" соответствует "2008-07-01" (в июне всего 30 дней).
</para>
<para>
Обратите внимание на ограничение диапазона дней: 0-31, как указывает
регулярное выражение в предыдущих параграфах. Поэтому дата наподобие "2008-06-32" некорректна.
</para>
<para>
Допускается также выход за границы диапазона для форматов <literal>mm</literal>
и <literal>MM</literal> со значением 0. Значение месяца 0 соответствует декабрю
предыдущего года. Например, дата "2008-00-22" равносильна "2007-12-22".
</para>
<para>
Если учесть два предыдущих замечания и выход за границы диапазона дней и месяцев,
получим следующее: дата "2008-00-00" в первую очередь преобразуется в "2007-12-00",
которая будет преобразована в "2007-11-30". То же случится с датой "0000-00-00", которая
преобразуется к "-0001-11-30" (минус первый год в календаре ISO 8601 и 2 год до н. э.
по григорианскому календарю).
</para>
</caution>
</sect1>
<!--}}}-->
<!--Compound Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.compound">
<title>Составные форматы</title>
<para>
Страница описывает разные составные форматы даты и времени
в BNF-подобном синтаксисе, которые понимает парсер
методов <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>,
и функций <function>date_create</function>, <function>date_create_immutable</function>
и <function>strtotime</function>.
</para>
<para>
О форматировании объектов <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>
рассказывает документация метода <function>DateTimeInterface::format</function>.
</para>
<table>
<title>Символы составного форматирования</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Форматы</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>DD</literal> (день месяца с ведущим нулём)</entry>
<entry>"0" [0-9] | [1-2][0-9] | "3" [01]</entry>
<entry>"02", "12", "31"</entry>
</row>
<row>
<entry><literal>doy</literal> (день в году)</entry>
<entry>"00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6]</entry>
<entry>"001", "012", "180", "350", "366"</entry>
</row>
<row>
<entry><literal>frac</literal> (дробная часть)</entry>
<entry>. [0-9]+</entry>
<entry>".21342", ".85"</entry>
</row>
<row>
<entry><literal>hh</literal> (часы)</entry>
<entry>"0"?[1-9] | "1"[0-2]</entry>
<entry>"04", "7", "12"</entry>
</row>
<row>
<entry><literal>HH</literal> (часы с ведущим нулём)</entry>
<entry>[01][0-9] | "2"[0-4]</entry>
<entry>"04", "07", "19"</entry>
</row>
<row>
<entry><literal>meridian</literal> (Ante meridiem или Post meridiem)</entry>
<entry>[AaPp] .? [Mm] .? [\0\t ]</entry>
<entry>"A.m.", "pM", "am."</entry>
</row>
<row>
<entry><literal>ii</literal> (минуты)</entry>
<entry>[0-5]?[0-9]</entry>
<entry>"04", "8", "59"</entry>
</row>
<row>
<entry><literal>II</literal> (минуты с ведущим нулём)</entry>
<entry>[0-5][0-9]</entry>
<entry>"04", "08", "59"</entry>
</row>
<row>
<entry><literal>M</literal> (сокращённое наименование месяца)</entry>
<entry>'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec'</entry>
<entry></entry>
</row>
<row>
<entry><literal>MM</literal> (месяц с ведущим нулём)</entry>
<entry>[0-1][0-9]</entry>
<entry>"00", "12"</entry>
</row>
<row>
<entry><literal>space</literal> (символ пробела или табуляции)</entry>
<entry>[ \t]</entry>
<entry></entry>
</row>
<row>
<entry><literal>ss</literal> (секунды)</entry>
<entry>([0-5]?[0-9])|60</entry>
<entry>"04", "8", "59", "60" (дополнительная секунда)</entry>
</row>
<row>
<entry><literal>SS</literal> (секунды с ведущим нулём)</entry>
<entry>[0-5][0-9]</entry>
<entry>"04", "08", "59"</entry>
</row>
<row>
<entry><literal>W</literal> (неделя в году)</entry>
<entry>"0"[1-9] | [1-4][0-9] | "5"[0-3]</entry>
<entry>"05", "17", "53"</entry>
</row>
<row>
<entry><literal>tzcorrection</literal> (смещение часового пояса)</entry>
<entry>"GMT"? [+-] <literal>hh</literal> ":"? <literal>II</literal>?</entry>
<entry>"+0400", "GMT-07:00", "-07:00"</entry>
</row>
<row>
<entry><literal>YY</literal> (4 цифры года)</entry>
<entry>[0-9]{4}</entry>
<entry>"2000", "2008", "1978"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Форматы стандартов</title>
<tgroup cols="2">
<thead>
<row>
<entry>Описание</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry>ATOM</entry>
<entry>"2022-06-02T16:58:35+00:00"</entry>
</row>
<row>
<entry>COOKIE</entry>
<entry>"Thursday, 02-Jun-2022 16:58:35 UTC"</entry>
</row>
<row>
<entry>ISO8601</entry>
<entry>"2022-06-02T16:58:35+0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;822">RFC 822</link></entry>
<entry>"Thu, 02 Jun 22 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;850">RFC 850</link></entry>
<entry>"Thursday, 02-Jun-22 16:58:35 UTC"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;1036">RFC 1036</link></entry>
<entry>"Thu, 02 Jun 22 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;1123">RFC 1123</link></entry>
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;2822">RFC 2822</link></entry>
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;3339">RFC 3339</link></entry>
<entry>"2022-06-02T16:58:35+00:00"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;3339">RFC 3339</link> Extended</entry>
<entry>"2022-06-02T16:58:35.698+00:00"</entry>
</row>
<row>
<entry><link xlink:href="&url.rfc;7231">RFC 7231</link></entry>
<entry>"Thu, 02 Jun 2022 16:58:35 GMT"</entry>
</row>
<row>
<entry>RSS</entry>
<entry>"Thu, 02 Jun 2022 16:58:35 +0000"</entry>
</row>
<row>
<entry>W3C</entry>
<entry>"2022-06-02T16:58:35+00:00"</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Региональные нотации</title>
<tgroup cols="3">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry>Общий формат log-записей</entry>
<entry><literal>dd</literal> "/" <literal>M</literal> "/" <literal>YY</literal> : <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal> <literal>space</literal> <literal>tzcorrection</literal></entry>
<entry>"10/Oct/2000:13:55:36 -0700"</entry>
</row>
<row>
<entry>EXIF</entry>
<entry><literal>YY</literal> ":" <literal>MM</literal> ":" <literal>DD</literal> " " <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
<entry>"2008:08:07 18:11:31"</entry>
</row>
<row>
<entry>Год и неделя в формате ISO</entry>
<entry><literal>YY</literal> "-"? "W" <literal>W</literal></entry>
<entry>"2008W27", "2008-W28"</entry>
</row>
<row>
<entry>Год, неделя в формате ISO и день недели</entry>
<entry><literal>YY</literal> "-"? "W" <literal>W</literal> "-"? [0-7]</entry>
<entry>"2008W273", "2008-W28-3"</entry>
</row>
<row>
<entry>MySQL</entry>
<entry><literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal> " " <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
<entry>"2008-08-07 18:11:31"</entry>
</row>
<row>
<entry>PostgreSQL: год и день в году</entry>
<entry><literal>YY</literal> "."? <literal>doy</literal></entry>
<entry>"2008.197", "2008197"</entry>
</row>
<row>
<entry>SOAP</entry>
<entry><literal>YY</literal> "-" <literal>MM</literal> "-" <literal>DD</literal> "T" <literal>HH</literal> ":" <literal>II</literal> ":" <literal>SS</literal> <literal>frac</literal> <literal>tzcorrection</literal>?</entry>
<entry>"2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00"</entry>
</row>
<row>
<entry>Unix Timestamp</entry>
<entry>"@" "-"? [0-9]+</entry>
<entry>"@1215282385"</entry>
</row>
<row>
<entry>Метка времени Unix с микросекундами</entry>
<entry>"@" "-"? [0-9]+ "." [0-9]{0,6}</entry>
<entry>"@1607974647.503686"</entry>
</row>
<row>
<entry>XMLRPC</entry>
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal> "T" <literal>hh</literal> ":" <literal>II</literal> ":" <literal>SS</literal></entry>
<entry>"20080701T22:38:07", "20080701T9:38:07"</entry>
</row>
<row>
<entry>XMLRPC (Compact)</entry>
<entry><literal>YY</literal> <literal>MM</literal> <literal>DD</literal> 't' <literal>hh</literal> <literal>II</literal> <literal>SS</literal></entry>
<entry>"20080701t223807", "20080701T093807"</entry>
</row>
<row>
<entry>WDDX</entry>
<entry><literal>YY</literal> "-" <literal>mm</literal> "-" <literal>dd</literal> "T" <literal>hh</literal> ":" <literal>ii</literal> ":" <literal>ss</literal></entry>
<entry>"2008-7-1T9:3:37"</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
Символ "W" в форматах "Год и неделя в формате ISO" и "Год, неделя в формате ISO и день
недели" чувствителен к регистру, символ "W" указывают только в верхнем
регистре.
</para>
<para>
Символ "T" в форматах SOAP, XMLRPC и WDDX также чувствителен к регистру,
символ "T" указывают только в верхнем регистре.
</para>
<para>
Формат "Unix Timestamp" устанавливает часовой пояс в UTC.
</para>
</note>
</sect1>
<!--}}}-->
<!--Relative Formats: {{{-->
<sect1 annotations="chunk:false" xml:id="datetime.formats.relative">
<title>Относительные форматы</title>
<para>
Страница описывает относительные форматы даты и времени в BNF-подобном синтаксисе, которые понимает парсер
классов <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>,
и функций <function>date_create</function>,
<function>date_create_immutable</function>,
<function>strtotime</function>.
</para>
<para>
Объекты даты и времени <classname>DateTimeImmutable</classname> и <classname>DateTime</classname>
форматируют нотацией, которую описывает документация к методу <function>DateTimeInterface::format</function>.
</para>
<table>
<title>Символы</title>
<tgroup cols="2">
<thead>
<row>
<entry>Описание</entry>
<entry>Формат</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>dayname</literal> (название дня недели)</entry>
<entry>
'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' |
'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' |
'sat'
</entry>
</row>
<row>
<entry><literal>daytext</literal> (будние дни — пн–пт, без учёта праздничных дней)</entry>
<entry>'weekday' | 'weekdays'</entry>
</row>
<row>
<entry><literal>number</literal> (числа)</entry>
<entry>[+-]?[0-9]+</entry>
</row>
<row>
<entry><literal>ordinal</literal> (порядковые числительные и относительные указатели)</entry>
<entry>
'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' |
'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' |
'next' | 'last' | 'previous' | 'this'
</entry>
</row>
<row>
<entry><literal>reltext</literal> (относительные указатели)</entry>
<entry>'next' | 'last' | 'previous' | 'this'</entry>
</row>
<row>
<entry><literal>space</literal> (символы пробела и табуляции)</entry>
<entry>[ \t]+</entry>
</row>
<row>
<entry><literal>unit</literal> (единицы измерения)</entry>
<entry>
'ms' | 'µs' | (( 'msec' | 'millisecond' | 'µsec' | 'microsecond'
| 'usec' | 'sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' |
'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' |
<literal>daytext</literal>
</entry>
</row>
</tbody>
</tgroup>
</table>
<table>
<title>Обозначения на основе дней</title>
<tgroup cols="3">
<thead>
<row>
<entry>Формат</entry>
<entry>Описание</entry>
<entry>Примеры</entry>
</row>
</thead>
<tbody>
<row>
<entry>'yesterday'</entry>
<entry>Полночь вчера</entry>
<entry>"yesterday 14:00"</entry>
</row>
<row>
<entry>'midnight'</entry>
<entry>Время устанавливается в 00:00:00</entry>
<entry></entry>
</row>
<row>
<entry>'today'</entry>
<entry>Время устанавливается в 00:00:00</entry>
<entry></entry>
</row>
<row>
<entry>'now'</entry>
<entry>Текущее время</entry>
<entry></entry>
</row>
<row>
<entry>'noon'</entry>
<entry>Время устанавливается в 12:00:00</entry>
<entry>"yesterday noon"</entry>
</row>
<row>
<entry>'tomorrow'</entry>
<entry>Полночь завтра</entry>
<entry></entry>
</row>
<row>
<entry>'back of' <literal>hour</literal></entry>
<entry>15 минут заданного часа</entry>
<entry>"back of 7pm", "back of 15"</entry>
</row>
<row>
<entry>'front of' <literal>hour</literal></entry>
<entry>Без 15 минут заданный час</entry>
<entry>"front of 5am", "front of 23"</entry>
</row>
<row>
<entry>'first day of'</entry>
<entry>
Устанавливает первый день текущего месяца. Обычно эту нотацию лучше использовать
вместе с названием месяца, следующим за ней, иначе будет учитываться текущий месяц.
</entry>
<entry>"first day of January 2008"</entry>
</row>
<row>
<entry>'last day of'</entry>
<entry>
Устанавливает последний день текущего месяца. Обычно эту нотацию лучше использовать
вместе с названием месяца, следующим за ней, иначе будет учитываться текущий месяц.
</entry>
<entry>"last day of next month"</entry>
</row>
<row>
<entry><literal>ordinal</literal> <literal>space</literal> <literal>dayname</literal> <literal>space</literal> 'of'</entry>
<entry>Вычисляет <literal>x</literal> день недели текущего или заданного месяца.</entry>
<entry>"first sat of July 2008"</entry>
</row>
<row>
<entry>'last' <literal>space</literal> <literal>dayname</literal> <literal>space</literal> 'of'</entry>
<entry>Вычисляет <emphasis>последний</emphasis> день недели текущего или заданного месяца.</entry>
<entry>"last sat of July 2008"</entry>
</row>
<row>
<entry><literal>number</literal> <literal>space</literal>? (<literal>unit</literal> | 'week')</entry>
<entry>Вычисляет относительное время при использовании числовых значений периода.</entry>
<entry>"+5 weeks", "12 day", "-7 weekdays"</entry>
</row>
<row>
<entry>(<literal>ordinal</literal> | <literal>reltext</literal>) <literal>space</literal> <literal>unit</literal></entry>
<entry>Вычисляет относительное время при использовании строковых значений периода.
<literal>last</literal> и <literal>previous</literal> то же, что и
<literal>-1</literal>, <literal>this</literal> ни на что не влияет, а
<literal>next</literal> <literal>+1</literal>.
</entry>
<entry>"fifth day", "second month", "last day", "previous year"</entry>
</row>
<row>
<entry>'ago'</entry>
<entry>Вычитает все значения из последнего полученного момента времени.</entry>
<entry>"2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago ago"</entry>
</row>
<row>
<entry><literal>dayname</literal></entry>
<entry>
Перемещается на следующий день указанного дня недели. (Смотрите <link linkend="datetime.formats.relative.dayname-note">замечание</link>)
</entry>
<entry>"Monday"</entry>
</row>
<row>
<entry><literal>reltext</literal> <literal>space</literal> 'week'</entry>
<entry>Разбирает специфичный формат "weekday + last/this/next week".</entry>
<entry>"Monday next week"</entry>
</row>
</tbody>
</tgroup>
</table>
<note>
<para>
Относительные выражения обрабатываются только <emphasis>после</emphasis> неотносительных.
Например, "+1 week july 2008" эквивалентно "july 2008 +1 week".
</para>
<para>
Исключение из этого правила составляют: "yesterday", "midnight", "today", "noon" и "tomorrow".
Записи "tomorrow 11:00" и "11:00 tomorrow" отличаются. Если принять сегодняшнюю дату за "July 23rd, 2008",
то первая запись возвращает "2008-07-24 11:00", а вторая "2008-07-24 00:00". Причина такого поведения в том,
что эти пять выражений влияют непосредственно на время.
</para>
<para>
Ключевые слова наподобие "first day of" зависят от контекста строки относительного формата.
Для строк в статическом методе или функции референтом станет текущая системная метка времени,
но методе <function>DateTime::modify</function>
или <function>DateTimeImmutable::modify</function>
референтом станет объект, на котором вызывается метод <literal>modify()</literal>.
</para>
</note>
<note>
<para xml:id="datetime.formats.relative.dayname-note">
Следует обратить внимание на следующие замечания относительно текущего дня недели и дня недели,
который указали в строке даты и времени. Текущий день недели вычисляется из независимой части строки
даты и времени.
</para>
<orderedlist>
<listitem>
<simpara>
"<literal>dayname</literal>" <emphasis>не</emphasis> сдвигает дату на другой день.
(Например: "Wed July 23rd, 2008" означает "2008-07-23").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>number</literal> <literal>dayname</literal>" <emphasis>не</emphasis> сдвигает дату
на другой день. (Например: "1 wednesday july 23rd, 2008" означает "2008-07-23").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>number</literal> week <literal>dayname</literal>" добавляет соответствующее число недель,
но <emphasis>не</emphasis> сдвигает дату на другой день. В этом случае имеют место два различных блока
"<literal>number</literal> week" и "<literal>dayname</literal>".
(Например: "+1 week wednesday july 23rd, 2008" означает "2008-07-30").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal>" <emphasis>сдвигает</emphasis> дату
на другой день. (Например: "last wednesday july 23rd, 2008" означает "2008-07-30").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>number</literal> week <literal>ordinal</literal> <literal>dayname</literal>"
добавляет число недель, которое соответствует символу числа, а затем <emphasis>сдвигает</emphasis> дату на другой день.
В этом случае имеют место два различных блока "<literal>number</literal> week"
и "<literal>ordinal</literal> <literal>dayname</literal>".
(Например: "+1 week first wednesday july 23rd, 2008" означает "2008-08-06").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal> 'of' " <emphasis>не</emphasis> сдвигает дату
на другой день. (Например: "first wednesday of july 23rd, 2008" означает "2008-07-02", потому как
определённые фразы с 'of' сбрасывают день месяца на '1' и в этом случае игнорируется '23rd').
</simpara>
</listitem>
</orderedlist>
<para>
Также следует обратить внимание, что "of" в "<literal>ordinal</literal>
<literal>space</literal> <literal>dayname</literal>
<literal>space</literal> 'of' " и "'last' <literal>space</literal>
<literal>dayname</literal> <literal>space</literal> 'of' " имеет особый смысл.
</para>
<orderedlist>
<listitem>
<simpara>
Устанавливает для дня месяца значение 1.
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal> 'of' "<emphasis>не</emphasis> сдвигает дату
на другой день. (Например: "first tuesday of july 2008" означает "2008-07-01").
</simpara>
</listitem>
<listitem>
<simpara>
"<literal>ordinal</literal> <literal>dayname</literal>" <emphasis>сдвигает</emphasis> дату на другой день.
(Например: "first tuesday july 2008" означает "2008-07-08", смотрите также 4-й пункт предыдущего замечания).
</simpara>
</listitem>
<listitem>
<simpara>
"'last' <literal>dayname</literal> 'of' " получает последний в месяце <literal>dayname</literal>.
(Например: "last wed of july 2008" означает "2008-07-30")
</simpara>
</listitem>
<listitem>
<simpara>
"'last' <literal>dayname</literal>" получает последний <literal>dayname</literal> перед текущим днём.
(Например: "last wed july 2008" означает "2008-06-25"; "july 2008" устанавливает дату в "2008-07-01",
а после "last wed" смещает дату к предыдущей среде, а именно к "2008-06-25").
</simpara>
</listitem>
</orderedlist>
</note>
<note>
<para>
Относительные значения в месяцах рассчитываются на основе продолжительности месяца.
Например, из "+2 month 2011-11-30" получится "2012-01-30".
Это связано с тем, что ноябрь состоит из 30 дней, а декабрь из 31 дня, что составляет 61 день.
</para>
</note>
<note>
<para>
Под числом (<literal>number</literal>) подразумевается целое число
(<emphasis>integer</emphasis>); десятичная точка (или запятая) рассматривается как разделитель,
если указали десятичное число.
Например, <literal>'+1.5 hours'</literal> посчитается
как <literal>'+1 5 hours'</literal>, а не <literal>'+1 hour +30 minutes'</literal>.
</para>
</note>
<sect2 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.4.0</entry>
<entry>
Символы <literal>number</literal> теперь снова принимают последовательность знаков плюс
и минус в записях наподобие <literal>+-2</literal>, и другие комбинации
множественных знаков.
</entry>
</row>
<row>
<entry>8.2.0</entry>
<entry>
Символы <literal>number</literal> больше не принимают последовательность знаков плюс
и минус, поэтому запись наподобие <literal>+-2</literal> недопустима.
</entry>
</row>
<row>
<entry>7.0.8</entry>
<entry>
Недели начинаются только с понедельника. Раньше разрешалось определять
начало недели с воскресенья.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</sect2>
</sect1>
<!--}}}-->
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=marker fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->