Форматирует интервал


(PHP 5 >= 5.3.0)

DateInterval::formatФорматирует интервал

Описание

public string DateInterval::format ( string $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 

Смотрите также

  • DateTime::diff() - Возвращает разницу между двумя DateTime объектами