DateInterval::format

(PHP 5 >= 5.3.0, PHP 7)

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

Описание

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

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

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