DateInterval::format
(PHP 5 >= 5.3.0, PHP 7)
DateInterval::format — Форматирует интервал
Описание
$format
) : stringФорматирует интервал.
Список параметров
-
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
Знак " -
" при отрицательном числе, пусто при положительном-
,
Возвращаемые значения
Возвращает отформатированный интервал.
Примечания
Замечание:
Метод DateInterval::format() не делает пересчета и переноса единиц времени при переполнении значений дат. Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например,
"32 дня"
, которые могут интерпретироваться по-разному, начиная"1 месяц и 4 дня"
и заканчивая"1 месяц и 1 день"
.
Список изменений
Версия | Описание |
---|---|
7.1.0 | Добавлены форматирующие символы F и f . |
Примеры
Пример #1 Пример использования DateInterval
<?php
$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');
?>
Результат выполнения данного примера:
4 days
Пример #2 DateInterval и перенос единиц
<?php
$interval = new DateInterval('P32D');
echo $interval->format('%d days');
?>
Результат выполнения данного примера:
32 days
Пример #3 DateInterval и DateTime::diff() с модификаторами %a и %d
<?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');
?>
Результат выполнения данного примера:
31 total days 1 month, 0 days