DateInterval::format
(PHP 5 >= 5.3.0, PHP 7)
DateInterval::format — Форматирует интервал
Описание
$format
) : stringФорматирует интервал.
Список параметров
-
format -
В строке formatраспознаются следующие символы. Каждому такому символу должен предшествовать знак процента (%).Символ в строке formatОписание Пример значения %Символ %%YГоды, число, минимум две цифры с ведущими нулями 01,03yГоды, число 1,3MМесяцы, число, минимум две цифры с ведущими нулями 01,03,12mМесяцы, число 1,3,12DДни, число, минимум две цифры с ведущими нулями 01,03,31dДни, число 1,3,31aОбщее количество дней в качестве результата выполнения DateTime::diff(), либо unknown4,18,8123HЧасы, число, минимум две цифры с ведущими нулями 01,03,23hЧасы, число 1,3,23IМинуты, число, минимум две цифры с ведущими нулями 01,03,59iМинуты, число 1,3,59SСекунды, число, минимум две цифры с ведущими нулями 01,03,57sСекунды, число 1,3,57FМикросекунды, число, какминимум 6 цифр с ведущим 0 007701,052738,428291fМикросекунды, число 7701,52738,428291RЗнак " -" при отрицательном числе, "+" при положительном-,+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