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

# DateInterval::format

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

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

### Описание

public function 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` | Знак "`-`" при отрицательном числе, пусто при положительном | `-`, ``

### Возвращаемые значения

Возвращает отформатированный интервал.

### Список изменений

Версия | Описание
--- | ---
7.2.12 | Формат `F` и `f` теперь всегда будет положительным.
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

### Примечания

> Замечание:

> Метод DateInterval::format() не делает пересчёта и переноса единиц времени при переполнении значений дат. Это ожидаемое поведение, поскольку невозможно реализовать перенос при значениях, например, `"32 дня"`, которые могут интерпретироваться по-разному, начиная `"1 месяц и 4 дня"` и заканчивая `"1 месяц и 1 день"`.

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

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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open