1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-25 16:22:18 +01:00
Files
archived-doc-ru/reference/datetime/dateinterval/format.xml
2022-12-13 20:39:28 +03:00

299 lines
10 KiB
XML
Raw 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: 02ff7fef5b34cf8f5395180d9d39fb64d9398d00 Maintainer: aur Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="dateinterval.format" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DateInterval::format</refname>
<refpurpose>Форматирует интервал</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis role="DateInterval">
<modifier>public</modifier> <type>string</type><methodname>DateInterval::format</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<para>
Форматирует интервал.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
<table>
<title>
В строке <parameter>format</parameter> распознаются следующие символы.
Каждому такому символу должен предшествовать знак процента (<literal>%</literal>).
</title>
<tgroup cols="3">
<thead>
<row>
<entry>Символ в строке<parameter>format</parameter></entry>
<entry>Описание</entry>
<entry>Пример значения</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>%</literal></entry>
<entry>Символ <literal>%</literal></entry>
<entry><literal>%</literal></entry>
</row>
<row>
<entry><literal>Y</literal></entry>
<entry>Годы, число, минимум две цифры с ведущими нулями</entry>
<entry><literal>01</literal>, <literal>03</literal></entry>
</row>
<row>
<entry><literal>y</literal></entry>
<entry>Годы, число</entry>
<entry><literal>1</literal>, <literal>3</literal></entry>
</row>
<row>
<entry><literal>M</literal></entry>
<entry>Месяцы, число, минимум две цифры с ведущими нулями</entry>
<entry><literal>01</literal>, <literal>03</literal>, <literal>12</literal></entry>
</row>
<row>
<entry><literal>m</literal></entry>
<entry>Месяцы, число</entry>
<entry><literal>1</literal>, <literal>3</literal>, <literal>12</literal></entry>
</row>
<row>
<entry><literal>D</literal></entry>
<entry>Дни, число, минимум две цифры с ведущими нулями</entry>
<entry><literal>01</literal>, <literal>03</literal>, <literal>31</literal></entry>
</row>
<row>
<entry><literal>d</literal></entry>
<entry>Дни, число</entry>
<entry><literal>1</literal>, <literal>3</literal>, <literal>31</literal></entry>
</row>
<row>
<entry><literal>a</literal></entry>
<entry>Общее количество дней в качестве результата выполнения <methodname>DateTime::diff</methodname>, либо <literal>unknown</literal></entry>
<entry><literal>4</literal>, <literal>18</literal>, <literal>8123</literal></entry>
</row>
<row>
<entry><literal>H</literal></entry>
<entry>Часы, число, минимум две цифры с ведущими нулями</entry>
<entry><literal>01</literal>, <literal>03</literal>, <literal>23</literal></entry>
</row>
<row>
<entry><literal>h</literal></entry>
<entry>Часы, число</entry>
<entry><literal>1</literal>, <literal>3</literal>, <literal>23</literal></entry>
</row>
<row>
<entry><literal>I</literal></entry>
<entry>Минуты, число, минимум две цифры с ведущими нулями</entry>
<entry><literal>01</literal>, <literal>03</literal>, <literal>59</literal></entry>
</row>
<row>
<entry><literal>i</literal></entry>
<entry>Минуты, число</entry>
<entry><literal>1</literal>, <literal>3</literal>, <literal>59</literal></entry>
</row>
<row>
<entry><literal>S</literal></entry>
<entry>Секунды, число, минимум две цифры с ведущими нулями</entry>
<entry><literal>01</literal>, <literal>03</literal>, <literal>57</literal></entry>
</row>
<row>
<entry><literal>s</literal></entry>
<entry>Секунды, число</entry>
<entry><literal>1</literal>, <literal>3</literal>, <literal>57</literal></entry>
</row>
<row>
<entry><literal>F</literal></entry>
<entry>Микросекунды, число, как минимум
6 цифр с ведущим 0</entry>
<entry><literal>007701</literal>, <literal>052738</literal>, <literal>428291</literal></entry>
</row>
<row>
<entry><literal>f</literal></entry>
<entry>Микросекунды, число</entry>
<entry><literal>7701</literal>, <literal>52738</literal>, <literal>428291</literal></entry>
</row>
<row>
<entry><literal>R</literal></entry>
<entry>Знак "<literal>-</literal>" при отрицательном числе, "<literal>+</literal>" при положительном</entry>
<entry><literal>-</literal>, <literal>+</literal></entry>
</row>
<row>
<entry><literal>r</literal></entry>
<entry>Знак "<literal>-</literal>" при отрицательном числе, пусто при положительном</entry>
<entry><literal>-</literal>, <literal/></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Возвращает отформатированный интервал.
</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>7.2.12</entry>
<entry>
Формат <literal>F</literal> и <literal>f</literal> теперь всегда будет положительным.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>Добавлены форматирующие символы <literal>F</literal> и <literal>f</literal>.</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования <classname>DateInterval</classname></title>
<programlisting role="php">
<![CDATA[
<?php
$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
4 days
]]>
</screen>
</example>
</para>
<para>
<example>
<title><classname>DateInterval</classname> и перенос единиц</title>
<programlisting role="php">
<![CDATA[
<?php
$interval = new DateInterval('P32D');
echo $interval->format('%d days');
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
32 days
]]>
</screen>
</example>
</para>
<para>
<example>
<title>
<classname>DateInterval</classname> и
<methodname>DateTime::diff</methodname> с модификаторами %a и %d
</title>
<programlisting role="php">
<![CDATA[
<?php
$january = new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval = $february->diff($january);
// %a выведет общее количество дней.
echo $interval->format('%a total days')."\n";
// В то время как %d выведет только число дней, не покрытых месяцем
echo $interval->format('%m month, %d days');
?>
]]>
</programlisting>
&example.outputs;
<screen role="php">
<![CDATA[
31 total days
1 month, 0 days
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<note>
<para>
Метод <methodname>DateInterval::format</methodname>
не делает пересчёта и переноса единиц времени при переполнении значений дат.
Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например,
<literal>"32 дня"</literal>, которые могут интерпретироваться по-разному, начиная
<literal>"1 месяц и 4 дня"</literal> и заканчивая <literal>"1 месяц и 1 день"</literal>.
</para>
</note>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>DateTime::diff</methodname></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
-->