DateInterval::format
Форматирует интервал
&reftitle.description;
public stringDateInterval::format
stringformat
Форматирует интервал.
&reftitle.parameters;
format
В строке format распознаются следующие символы.
Каждому такому символу должен предшествовать знак процента (%).
Символ в строкеformat
Описание
Пример значения
%
Символ %
%
Y
Годы, число, минимум две цифры с ведущими нулями
01, 03
y
Годы, число
1, 3
M
Месяцы, число, минимум две цифры с ведущими нулями
01, 03, 12
m
Месяцы, число
1, 3, 12
D
Дни, число, минимум две цифры с ведущими нулями
01, 03, 31
d
Дни, число
1, 3, 31
a
Общее количество дней в качестве результата выполнения DateTime::diff, либо unknown
4, 18, 8123
H
Часы, число, минимум две цифры с ведущими нулями
01, 03, 23
h
Часы, число
1, 3, 23
I
Минуты, число, минимум две цифры с ведущими нулями
01, 03, 59
i
Минуты, число
1, 3, 59
S
Секунды, число, минимум две цифры с ведущими нулями
01, 03, 57
s
Секунды, число
1, 3, 57
F
Микросекунды, число, как минимум
6 цифр с ведущим 0
007701, 052738, 428291
f
Микросекунды, число
7701, 52738, 428291
R
Знак "-" при отрицательном числе, "+" при положительном
-, +
r
Знак "-" при отрицательном числе, пусто при положительном
-,
&reftitle.returnvalues;
Возвращает отформатированный интервал.
&reftitle.changelog;
&Version;
&Description;
7.2.12
Формат F и f теперь всегда будет положительным.
7.1.0
Добавлены форматирующие символы F и f.
&reftitle.examples;
Пример использования DateInterval
format('%d days');
?>
]]>
&example.outputs;
DateInterval и перенос единиц
format('%d days');
?>
]]>
&example.outputs;
DateInterval и
DateTime::diff с модификаторами %a и %d
diff($january);
// %a выведет общее количество дней.
echo $interval->format('%a total days')."\n";
// В то время как %d выведет только число дней, не покрытых месяцем
echo $interval->format('%m month, %d days');
?>
]]>
&example.outputs;
&reftitle.notes;
Метод DateInterval::format
не делает пересчёта и переноса единиц времени при переполнении значений дат.
Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например,
"32 дня", которые могут интерпретироваться по-разному, начиная
"1 месяц и 4 дня" и заканчивая "1 месяц и 1 день".
&reftitle.seealso;
DateTime::diff