DateInterval::format
(PHP 5 >= 5.3.0, PHP 7)
DateInterval::format — Форматирует интервал
Описание
$format
)Форматирует интервал.
Список параметров
-
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 R Знак "-" при отрицательном числе, "+" при положительном -, + r Знак "-" при отрицательном числе, пусто при положительном -,
Возвращаемые значения
Возвращает отформатированный интервал.
Примечания
Замечание:
Метод DateInterval::format() не делает пересчета и переноса единиц времени при переполнении значений дат. Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например, "32 days", которые могут интерпретироваться по-разному, начиная "1 month and 4 days" и заканчивая "1 month and 1 day".
Примеры
Пример #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
Коментарии
Pls note these important abbreviations;
P: period
Y: years
M: months
D: days
T: time
H: hours
M: minutes
S: seconds
The above is from the ISO 8601 - an international standard that defines how to use, store, and transfer date, time, and duration information.