1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-24 07:42:22 +01:00
Files
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

740 lines
42 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: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.strftime" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>strftime</refname>
<refpurpose>Форматирует местную дату и время с учётом региональных настроек</refpurpose>
</refnamediv>
<refsynopsisdiv>
&warn.deprecated.function-8-1-0.alternatives;
<simplelist role="alternatives">
<member><function>date</function></member>
<member><methodname>IntlDateFormatter::format</methodname></member>
</simplelist>
</refsynopsisdiv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier role="attribute">#[\Deprecated]</modifier>
<type class="union"><type>string</type><type>false</type></type><methodname>strftime</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
<methodparam choice="opt"><type class="union"><type>int</type><type>null</type></type><parameter>timestamp</parameter><initializer>&null;</initializer></methodparam>
</methodsynopsis>
<para>
Функция форматирует дату и время с учётом локали. Названия месяцев, дней недели
и других строк, которые зависят от языка, возвращаются с учётом текущих региональных настроек,
которые установили функцией <function>setlocale</function>.
</para>
<warning>
<para>
Текущая библиотека языка C не всегда поддерживает каждый спецификатор преобразования,
и тогда функция <function>strftime</function> тоже не будет поддерживать каждый спецификатор.
Кроме того, не каждая платформа поддерживает отрицательные метки времени, поэтому диапазон дат
иногда ограничивается эпохой Unix. Это означает, что спецификаторы %e, %T, %R и %D (и, возможно,
другие), как и даты до <literal>1 января 1970</literal>, не поддерживаются
ОС Windows, отдельными версиями систем Linux и рядом других операционных системам.
Список спецификаторов преобразования для Windows-систем даёт страница
<link xlink:href="&url.strftime.win32;">на сайте <acronym>MSDN</acronym></link>.
Вместо этой функции вызывают метод <methodname>IntlDateFormatter::format</methodname>.
</para>
</warning>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
<table>
<title>В строке параметра <parameter>format</parameter> распознаются следующие символы</title>
<tgroup cols="3">
<thead>
<row>
<entry>Параметр <parameter>format</parameter></entry>
<entry>Описание</entry>
<entry>Пример возвращаемых значений</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center"><emphasis>День</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%a</literal></entry>
<entry>Сокращённое название дня недели</entry>
<entry>От <literal>Sun</literal> до <literal>Sat</literal></entry>
</row>
<row>
<entry><literal>%A</literal></entry>
<entry>Полное название дня недели</entry>
<entry>От <literal>Sunday</literal> до <literal>Saturday</literal></entry>
</row>
<row>
<entry><literal>%d</literal></entry>
<entry>Двузначный день месяца с ведущим нулём</entry>
<entry>От <literal>01</literal> до <literal>31</literal></entry>
</row>
<row>
<entry><literal>%e</literal></entry>
<entry>
День месяца с пробелом перед одиночными цифрами.
В ОС Windows обработку модификатора реализовали иначе, чем описывает руководство.
Дополнительную информацию дают следующие параграфы.
</entry>
<entry>От <literal> 1</literal> до <literal>31</literal></entry>
</row>
<row>
<entry><literal>%j</literal></entry>
<entry>День года, 3 цифры с ведущими нулями</entry>
<entry>От <literal>001</literal> до <literal>366</literal></entry>
</row>
<row>
<entry><literal>%u</literal></entry>
<entry>Числовое представление дня недели по правилам стандарта ISO-8601</entry>
<entry>От <literal>1</literal> (понедельник) до <literal>7</literal> (воскресенье)</entry>
</row>
<row>
<entry><literal>%w</literal></entry>
<entry>Числовое представление дня недели</entry>
<entry>От <literal>0</literal> (воскресенье) до <literal>6</literal> (суббота)</entry>
</row>
<row>
<entry align="center"><emphasis>Неделя</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%U</literal></entry>
<entry>
Двузначный номер недели года с ведущим нулём для одиночных чисел.
Отсчёт недель начинается с первого воскресенья, которое
играет роль первого дня недели
</entry>
<entry><literal>13</literal> (для 13-й полной недели года)</entry>
</row>
<row>
<entry><literal>%V</literal></entry>
<entry>
Номер недели года по правилам стандарта ISO-8601:1988,
счёт начинается с недели, которая содержит не меньше 4 дней,
неделя начинается с понедельника
</entry>
<entry>От <literal>01</literal> до <literal>53</literal> (где 53
соответствует перекрывающейся неделе)</entry>
</row>
<row>
<entry><literal>%W</literal></entry>
<entry>
Двузначное числовое представление недели года с ведущим нулём для одиночных чисел.
Отсчёт недель начинается с первого
понедельника года, который играет роль первого дня недели
</entry>
<entry><literal>46</literal> (для 46-й недели года, которая начинается с понедельника)
</entry>
</row>
<row>
<entry align="center"><emphasis>Месяц</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%b</literal></entry>
<entry>Сокращённое название месяца на основе локали</entry>
<entry>От <literal>Jan</literal> до <literal>Dec</literal></entry>
</row>
<row>
<entry><literal>%B</literal></entry>
<entry>Полное название месяца на основе локали</entry>
<entry>От <literal>January</literal> до <literal>December</literal></entry>
</row>
<row>
<entry><literal>%h</literal></entry>
<entry>Сокращённое название месяца на основе локали (псевдоним модификатора %b)</entry>
<entry>От <literal>Jan</literal> до <literal>Dec</literal></entry>
</row>
<row>
<entry><literal>%m</literal></entry>
<entry>Числовое представление месяца с ведущим нулём перед одиночными цифрами</entry>
<entry>От <literal>01</literal> для января до <literal>12</literal> для декабря</entry>
</row>
<row>
<entry align="center"><emphasis>Год</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%C</literal></entry>
<entry>Двузначное представление столетия (год, разделённый на 100 и усечённый до целого числа)</entry>
<entry><literal>19</literal> для 20-го века</entry>
</row>
<row>
<entry><literal>%g</literal></entry>
<entry>
Двузначное представление года по правилам стандарта ISO-8601:1988 (смотрите описание модификатора %V)
</entry>
<entry>Пример: <literal>09</literal> для недели, в которую входит 6 января 2009</entry>
</row>
<row>
<entry><literal>%G</literal></entry>
<entry>Полная 4-значная версия представления модификатора %g</entry>
<entry>Пример: <literal>2009</literal> для недели, в которую входит 3 января 2009</entry>
</row>
<row>
<entry><literal>%y</literal></entry>
<entry>Двузначное представление года</entry>
<entry>Пример: <literal>09</literal> для 2009, <literal>79</literal> для 1979</entry>
</row>
<row>
<entry><literal>%Y</literal></entry>
<entry>Четырёхзначное представление года</entry>
<entry>Пример: <literal>2038</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Время</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%H</literal></entry>
<entry>Двузначное представление часа в 24-часовом формате</entry>
<entry>От <literal>00</literal> до <literal>23</literal></entry>
</row>
<row>
<entry><literal>%k</literal></entry>
<entry>Двузначное представление часа в 24-часовом формате с пробелом перед одиночной цифрой</entry>
<entry>От <literal> 0</literal> до <literal>23</literal></entry>
</row>
<row>
<entry><literal>%I</literal></entry>
<entry>Двузначное представление часа в 12-часовом формате</entry>
<entry>От <literal>01</literal> до <literal>12</literal></entry>
</row>
<row>
<entry><literal>%l (строчная L)</literal></entry>
<entry>Час в 12-часовом формате с пробелом перед одиночной цифрой</entry>
<entry>От <literal> 1</literal> до <literal>12</literal></entry>
</row>
<row>
<entry><literal>%M</literal></entry>
<entry>Двузначное представление минуты</entry>
<entry>От <literal>00</literal> до <literal>59</literal></entry>
</row>
<row>
<entry><literal>%p</literal></entry>
<entry>
Обозначение первой или второй половины дня в верхнем регистре на основе времени,
"AM" — до полудня или "PM" после полудня.
</entry>
<entry>
Пример: <literal>AM</literal> для 00:31, <literal>PM</literal> для 22:23.
Точный результат зависит от операционной системы,
которые иногда возвращают варианты в нижнем регистре
или варианты с точками (например, <literal>a.m.</literal>)
</entry>
</row>
<row>
<entry><literal>%P</literal></entry>
<entry>
Обозначение первой или второй половины дня в нижнем регистре на основе времени,
"am" — до полудня или "pm" после полудня.
</entry>
<entry>
Пример: <literal>am</literal> для 00:31, <literal>pm</literal> для 22:23.
Поддерживается не каждой операционной системой
</entry>
</row>
<row>
<entry><literal>%r</literal></entry>
<entry>То же, что и "%I:%M:%S %p"</entry>
<entry>Пример: <literal>09:34:17 PM</literal> для 21:34:17</entry>
</row>
<row>
<entry><literal>%R</literal></entry>
<entry>То же, что и "%H:%M"</entry>
<entry>Пример: <literal>00:35</literal> для 12:35 AM, <literal>16:44</literal> для 4:44 PM</entry>
</row>
<row>
<entry><literal>%S</literal></entry>
<entry>Двузначное представление секунды</entry>
<entry>От <literal>00</literal> до <literal>59</literal></entry>
</row>
<row>
<entry><literal>%T</literal></entry>
<entry>То же, что и "%H:%M:%S"</entry>
<entry>Пример: <literal>21:34:17</literal> для 09:34:17 PM</entry>
</row>
<row>
<entry><literal>%X</literal></entry>
<entry>Предпочтительное представление времени на основе локали, без даты</entry>
<entry>Пример: <literal>03:59:16</literal> или <literal>15:59:16</literal></entry>
</row>
<row>
<entry><literal>%z</literal></entry>
<entry>
Смещение часового пояса относительно стандарта UTC. В ОС Windows обработку модификатора реализовали иначе,
чем описывает руководство. Дополнительную информацию дают следующие параграфы.
</entry>
<entry>Пример: <literal>-0500</literal> для US Eastern Time</entry>
</row>
<row>
<entry><literal>%Z</literal></entry>
<entry>
Аббревиатура часового пояса. В ОС Windows обработку модификатора реализовали иначе,
чем описывает руководство. Дополнительную информацию дают следующие параграфы.
</entry>
<entry>Пример: <literal>EST</literal> для Eastern Time</entry>
</row>
<row>
<entry align="center"><emphasis>Метки даты и времени</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%c</literal></entry>
<entry>Предпочтительная метка даты и времени на основе локали</entry>
<entry>Пример: <literal>Tue Feb 5 00:45:10 2009</literal>
для 5 февраля 2009 00:45:10</entry>
</row>
<row>
<entry><literal>%D</literal></entry>
<entry>То же, что и "%m/%d/%y"</entry>
<entry>Пример: <literal>02/05/09</literal> для 5 февраля 2009</entry>
</row>
<row>
<entry><literal>%F</literal></entry>
<entry>То же, что и "%Y-%m-%d" (таким форматом часто пользуются в метках дат баз данных)</entry>
<entry>Пример: <literal>2009-02-05</literal> для 5 февраля 2009</entry>
</row>
<row>
<entry><literal>%s</literal></entry>
<entry>Метка времени эпохи Unix (то же, что и функция <function>time</function>)</entry>
<entry>Пример: <literal>305815200</literal> для 10 сентября 1979 08:40:00</entry>
</row>
<row>
<entry><literal>%x</literal></entry>
<entry>Предпочтительное представление даты на основе локали, без времени</entry>
<entry>Пример: <literal>02/05/09</literal> для 5 февраля 2009</entry>
</row>
<row>
<entry align="center"><emphasis>Прочее</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%n</literal></entry>
<entry>Символ перевода строки "\n"</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%t</literal></entry>
<entry>Символ табуляции "\t"</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>%%</literal></entry>
<entry>Символ процента "%"</entry>
<entry>---</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<warning>
<simpara>
Вопреки стандарту ISO-9899:1999, в ОС Sun Solaris отсчёт числового представления дня недели начинается
с воскресенья. Поэтому модификатор <literal>%u</literal> иногда работает не так, как описывает руководство.
</simpara>
</warning>
<warning>
<para>
<emphasis>Только для Windows:</emphasis>
</para>
<para>
Модификатор <literal>%e</literal> не поддерживается в Windows-реализации
функции. Значение получают через модификатор <literal>%#d</literal>.
Пример на этой странице показывает, как написать совместимую кросс-платформенную функцию.
</para>
<para>
Модификаторы <literal>%z</literal> и <literal>%Z</literal> возвращают
название часового пояса вместо смещения или аббревиатуры.
</para>
</warning>
<warning>
<simpara>
<emphasis>Только для macOS и стандартной библиотеки musl языка C:</emphasis> модификатор <literal>%P</literal>
не поддерживается в реализации этой функции в macOS.
</simpara>
</warning>
</listitem>
</varlistentry>
&date.timestamp.description;
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция возвращает строковое представление
метки времени <parameter>timestamp</parameter> или местного времени, если метку
не указали, которые отформатировала по условиям параметра <parameter>format</parameter>.
Названия месяцев и дней недели, а также другие строки, которые зависят от языка,
будут соответствовать текущей локали,
которую установили функцией <function>setlocale</function>.
Функция возвращает &false;, если параметр <parameter>format</parameter> пуст,
содержит неподдерживаемые спецификаторы преобразования или если длина возвращаемой
строки превысит значение <literal>4095</literal>.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
&date.timezone.errors.description;
<para>
Поскольку вывод зависит от текущей библиотеки
языка C, отдельные спецификаторы преобразования поддерживаются не всегда.
В ОС Windows функция выдаст 5 сообщений об ошибках уровня <constant>E_WARNING</constant>
и вернёт &false; при передаче неизвестных спецификаторов преобразования.
В других операционных системах функция не всегда выдаёт сообщения об ошибках уровня <constant>E_WARNING</constant>,
а вывод иногда содержит модификаторы без преобразования.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Параметр <parameter>timestamp</parameter> теперь принимает значение null.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
Этот пример будет работать в системах с языковыми настройками,
которые соответствуют модификаторам.
<example>
<title>
Пример форматирования даты функцией <function>strftime</function> с разными языковыми настройками
</title>
<programlisting role="php" annotations="non-interactive">
<![CDATA[
<?php
setlocale(LC_TIME, "C");
echo strftime("%A");
setlocale(LC_TIME, "fi_FI");
echo strftime(" по-фински — %A,");
setlocale(LC_TIME, "fr_FR");
echo strftime(" по-французски — %A и");
setlocale(LC_TIME, "de_DE");
echo strftime(" по-немецки — %A.\n");
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Пример номеров недели по стандарту ISO 8601:1988</title>
<programlisting role="php">
<![CDATA[
<?php
/* Декабрь 2002 / Январь 2003
ISOнед Пн Вт Ср Чт Пт Сб Вс
----- ----------------------------
51 16 17 18 19 20 21 22
52 23 24 25 26 27 28 29
1 30 31 1 2 3 4 5
2 6 7 8 9 10 11 12
3 13 14 15 16 17 18 19 */
// Вывод: Дата 12/28/2002 в формате %V, %G, %Y = 52,2002,2002
echo "Дата 12/28/2002 в формате %V, %G, %Y = " . strftime("%V, %G, %Y", strtotime("12/28/2002")) . "\n";
// Вывод: Дата 12/30/2002 в формате %V, %G, %Y = 1,2003,2002
echo "Дата 12/30/2002 в формате %V, %G, %Y = " . strftime("%V, %G, %Y", strtotime("12/30/2002")) . "\n";
// Вывод: Дата 1/3/2003 в формате %V, %G, %Y = 1,2003,2003
echo "Дата1/3/2003 в формате %V, %G, %Y = " . strftime("%V, %G, %Y",strtotime("1/3/2003")) . "\n";
// Вывод: Дата 1/10/2003 в формате %V, %G, %Y = 2,2003,2003
echo "Дата1/10/2003 в формате %V, %G, %Y = " . strftime("%V, %G, %Y",strtotime("1/10/2003")) . "\n";
/* Декабрь 2004 / Январь 2005
ISOнед Пн Вт Ср Чт Пт Сб Вс
----- ----------------------------
51 13 14 15 16 17 18 19
52 20 21 22 23 24 25 26
53 27 28 29 30 31 1 2
1 3 4 5 6 7 8 9
2 10 11 12 13 14 15 16 */
// Вывод: Дата 12/23/2004 в формате %V, %G, %Y = 52,2004,2004
echo "Дата 12/23/2004 в формате %V, %G, %Y = " . strftime("%V, %G, %Y",strtotime("12/23/2004")) . "\n";
// Вывод: Дата 12/31/2004 в формате %V,%G,%Y = 53,2004,2004
echo "Дата 12/31/2004 в формате %V, %G, %Y = " . strftime("%V, %G, %Y",strtotime("12/31/2004")) . "\n";
// Вывод: Дата 1/2/2005 в формате %V, %G, %Y = 53,2004,2005
echo "Дата 1/2/2005 в формате %V, %G, %Y = " . strftime("%V, %G, %Y",strtotime("1/2/2005")) . "\n";
// Вывод: Дата 1/3/2005 в формате %V, %G, %Y = 1,2005,2005
echo "Дата 1/3/2005 в формате %V, %G, %Y = " . strftime("%V, %G, %Y",strtotime("1/3/2005")) . "\n";
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Пример кросс-платформенной совместимости модификатора <literal>%e</literal></title>
<programlisting role="php">
<![CDATA[
<?php
// 1 января: выдаёт результат: '%e%1%' (%%, e, %%, %e, %%)
$format = '%%e%%%e%%';
// Убедимся, что код выполняется в ОС Windows, и правильно заменим модификатор %e
if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') {
$format = preg_replace('#(?<!%)((?:%%)*)%e#', '\1%#d', $format);
}
echo strftime($format);
]]>
</programlisting>
</example>
</para>
<para>
<example>
<title>Отображение каждого известного и неизвестного формата</title>
<programlisting role="php">
<![CDATA[
<?php
// Описание форматов
$strftimeFormats = array(
'A' => 'Полное название дня недели',
'B' => 'Полное название месяца на основе локали',
'C' => 'Двузначное представление столетия (год, разделённый на 100 и усечённый до целого числа)',
'D' => 'То же, что и "%m/%d/%y"',
'E' => '',
'F' => 'То же, что и "%Y-%m-%d"',
'G' => 'Полная 4-значная версия модификатора %g',
'H' => 'Двузначное представление часа в 24-часовом формате',
'I' => 'Двузначное представление часа в 12-часовом формате',
'J' => '',
'K' => '',
'L' => '',
'M' => 'Двузначное представление минуты',
'N' => '',
'O' => '',
'P' => 'Обозначение "am" или "pm" в нижнем регистре на основе времени',
'Q' => '',
'R' => 'То же, что и "%H:%M"',
'S' => 'Двузначное представление секунды',
'T' => 'То же, что и "%H:%M:%S"',
'U' => 'Двузначный номер недели года с ведущим нулём для одиночных чисел. Отсчёт недель начинается с первого воскресенья, которое играет роль первого дня недели',
'V' => 'Номер недели года по правилам стандарта ISO-8601:1988, счёт начинается с недели, которая содержит не меньше 4 дней, неделя начинается с понедельника',
'W' => 'Двузначное числовое представление недели года с ведущим нулём для одиночных чисел. Отсчёт недель начинается с первого понедельника года, который играет роль первого дня недели',
'X' => 'Предпочтительное представление времени на основе локали, без даты',
'Y' => 'Четырёхзначное представление года',
'Z' => 'Смещение или аббревиатура часового пояса, которые НЕ выдаёт модификатор %z (зависит от операционной системы)',
'a' => 'Сокращённое название дня недели',
'b' => 'Сокращённое название месяца на основе локали',
'c' => 'Предпочтительная метка даты и времени на основе локали',
'd' => 'Двузначный день месяца с ведущим нулём',
'e' => 'День месяца с пробелом перед одиночными цифрами',
'f' => '',
'g' => 'Двузначное представление года по правилам стандарта ISO-8601:1988 (смотрите описание модификатора %V)',
'h' => 'Сокращённое название месяца на основе локали (псевдоним модификатора %b)',
'i' => '',
'j' => 'День года, 3 цифры с ведущими нулями',
'k' => 'Двузначное представление часа в 24-часовом формате с пробелом перед одиночной цифрой',
'l' => 'Час в 12-часовом формате с пробелом перед одиночной цифрой',
'm' => 'Числовое представление месяца с ведущим нулём перед одиночными цифрами',
'n' => 'Символ новой строки "\n"',
'o' => '',
'p' => 'Обозначение "AM" или "PM" в верхнем регистре на основе времени',
'q' => '',
'r' => 'То же, что и "%I:%M:%S %p"',
's' => 'Метка времени эпохи Unix',
't' => 'Символ табуляции "\t"',
'u' => 'Числовое представление дня недели по правилам стандарта ISO-8601',
'v' => '',
'w' => 'Числовое представление дня недели',
'x' => 'Предпочтительное представление даты на основе локали, без времени',
'y' => 'Двузначное представление года',
'z' => 'Смещение или аббревиатура часового пояса относительно стандарта UTC (зависит от операционной системы)',
'%' => 'Символ процента "%"',
);
// Результаты
$strftimeValues = array();
// Обрабатываем форматы и подавляем ошибки
foreach ($strftimeFormats as $format => $description) {
if (false !== ($value = @strftime("%{$format}"))) {
$strftimeValues[$format] = $value;
}
}
// Находим самое длинное значение
$maxValueLength = 2 + max(array_map('strlen', $strftimeValues));
// Отображаем известные форматы
foreach ($strftimeValues as $format => $value) {
echo "Известный формат : '{$format}' = ", str_pad("'{$value}'", $maxValueLength), " ( {$strftimeFormats[$format]} )\n";
}
// Отображаем неизвестные форматы
foreach (array_diff_key($strftimeFormats, $strftimeValues) as $format => $description) {
echo "Неизвестный формат : '{$format}' ", str_pad(' ', $maxValueLength), ($description ? " ( {$description} )" : ''), "\n";
}
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Известный формат : 'A' = 'Friday' ( Полное название дня недели )
Известный формат : 'B' = 'December' ( Полное название месяца на основе локали )
Известный формат : 'H' = '11' ( Двузначное представление часа в 24-часовом формате )
Известный формат : 'I' = '11' ( Двузначное представление часа в 12-часовом формате )
Известный формат : 'M' = '24' ( Двузначное представление минуты )
Известный формат : 'S' = '44' ( Двузначное представление секунды )
Известный формат : 'U' = '48' ( Двузначный номер недели года с ведущим нулём для одиночных чисел. Отсчёт недель начинается с первого воскресенья, которое играет роль первого дня недели )
Известный формат : 'W' = '48' ( Двузначное числовое представление недели года с ведущим нулём для одиночных чисел. Отсчёт недель начинается с первого понедельника года, который играет роль первого дня недели )
Известный формат : 'X' = '11:24:44' ( Предпочтительное представление времени на основе локали, без даты )
Известный формат : 'Y' = '2010' ( Четырёхзначное представление года )
Известный формат : 'Z' = 'GMT Standard Time' ( Смещение или аббревиатура часового пояса, которые НЕ выдаёт модификатор %z (зависит от операционной системы) )
Известный формат : 'a' = 'Fri' ( Сокращённое название дня недели )
Известный формат : 'b' = 'Dec' ( Сокращённое название месяца на основе локали )
Известный формат : 'c' = '12/03/10 11:24:44' ( Предпочтительная метка даты и времени на основе локали )
Известный формат : 'd' = '03' ( Двузначный номер дня месяца (с ведущим нулём) )
Известный формат : 'j' = '337' ( Номер дня в году, 3 цифры с ведущими нулями )
Известный формат : 'm' = '12' ( Числовое представление месяца с ведущим нулём перед одиночными цифрами )
Известный формат : 'p' = 'AM' ( Обозначение "AM" или "PM" в верхнем регистре на основе времени )
Известный формат : 'w' = '5' ( Числовое представление дня недели )
Известный формат : 'x' = '12/03/10' ( Предпочтительное представление даты на основе локали, без времени )
Известный формат : 'y' = '10' ( Двузначное представление года )
Известный формат : 'z' = 'GMT Standard Time' ( Смещение или аббревиатура часового пояса относительно стандарта UTC (зависит от операционной системы) )
Известный формат : '%' = '%' ( Символ процента ("%") )
Неизвестный формат : 'C' ( Двузначное представление столетия (год, разделённый на 100 и усечённый до целого числа) )
Неизвестный формат : 'D' ( То же, что и "%m/%d/%y" )
Неизвестный формат : 'E'
Неизвестный формат : 'F' ( То же, что и "%Y-%m-%d" )
Неизвестный формат : 'G' ( Полная 4-значная версия модификатора %g )
Неизвестный формат : 'J'
Неизвестный формат : 'K'
Неизвестный формат : 'L'
Неизвестный формат : 'N'
Неизвестный формат : 'O'
Неизвестный формат : 'P' ( Обозначение "am" или "pm" в нижнем регистре на основе времени )
Неизвестный формат : 'Q'
Неизвестный формат : 'R' ( То же, что и "%H:%M" )
Неизвестный формат : 'T' ( То же, что и "%H:%M:%S" )
Неизвестный формат : 'V' ( Номер недели года по правилам стандарта ISO-8601:1988, счёт начинается с недели, которая содержит не меньше 4 дней, неделя начинается с понедельника )
Неизвестный формат : 'e' ( День месяца с пробелом перед одиночными цифрами )
Неизвестный формат : 'f'
Неизвестный формат : 'g' ( Двузначное представление года по правилам стандарта ISO-8601:1988 (смотрите описание модификатора %V) )
Неизвестный формат : 'h' ( Сокращённое название месяца на основе локали (псевдоним модификатора %b) )
Неизвестный формат : 'i'
Неизвестный формат : 'k' ( Двузначное представление часа в 24-часовом формате с пробелом перед одиночной цифрой )
Неизвестный формат : 'l' ( Час в 12-часовом формате с пробелом перед одиночной цифрой )
Неизвестный формат : 'n' ( Символ новой строки "\n" )
Неизвестный формат : 'o'
Неизвестный формат : 'q'
Неизвестный формат : 'r' ( То же, что и "%I:%M:%S %p" )
Неизвестный формат : 's' ( Временная метка эпохи Unix )
Неизвестный формат : 't' ( Символ табуляции "\t" )
Неизвестный формат : 'u' ( Числовое представление дня недели по правилам стандарта ISO-8601 )
Неизвестный формат : 'v'
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<simpara>
Модификаторы %G и %V, работа которых основана на днях недели
по стандарту ISO 8601:1988, иногда дают неожиданные (хотя
и правильные) результаты, если функция не до конца понимает систему нумерации.
Смотрите примеры с модификатором %V на этой странице руководства.
</simpara>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>IntlDateFormatter::format</methodname></member>
<member><methodname>DateTimeInterface::format</methodname></member>
<member>
<link xlink:href="&url.strftime.format.designer;">Онлайн-утилита составления времени в формате функции strftime()</link>
</member>
<member><function>setlocale</function></member>
<member><function>mktime</function></member>
<member><function>strptime</function></member>
<member><function>gmstrftime</function></member>
<member>
<link xlink:href="&spec.strftime;">Спецификация консорциума Open Group для функции <function>strftime</function></link>
</member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- 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=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->