DateInterval::format

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

DateInterval::formatFormata um intervalo

Descrição

public DateInterval::format(string $format): string

Formata um intervalo.

Parâmetros

format

Os caracteres a seguir são reconhecidos como string no parâmetro format. Cada um dos caracteres de formato deve ser precedidos com o sinal de porcento (%).
Caracter de format Descrição Exemplo de valores
% % literal %
Y Anos, em representação numérica, com dois dígitos e zero à esquerda 01, 03
y Anos, em representação numérica 1, 3
M Meses, em representação numérica, com dois dígitos e zero à esquerda 01, 03, 12
m Meses, em representação numérica 1, 3, 12
D Dias, em representação numérica, com dois dígitos e zero à esquerda 01, 03, 31
d Dias, em representação numérica 1, 3, 31
a Número total de dias resultante de DateTime::diff() ou (unknown), caso contrário 4, 18, 8123
H Horas, em representação numérica, com dois dígitos e zero à esquerda 01, 03, 23
h Horas, em representação numérica 1, 3, 23
I Minutos, em representação numérica, com dois dígitos e zero à esquerda 01, 03, 59
i Minutos, em representação numérica 1, 3, 59
S Segundos, em representação numérica, com dois dígitos e zero à esquerda 01, 03, 57
s Segundos, em representação numérica 1, 3, 57
F Microssegundos, numérico, pelo menos 6 dígitos precedidos com 0 007701, 052738, 428291
f Microssegundos, numérico 7701, 52738, 428291
R Sinal "-" quando negativo, "+" quando positivo -, +
r Sinal "-" quando negativo, sem sinal quando positivo -,

Valor Retornado

Retorna o intervalo formatado.

Registro de Alterações

Versão Descrição
7.2.12 Os formatos F e f serão agora sempre positivos.
7.1.0 Os formatos F e f foram adicionados.

Exemplos

Example #1 Exemplo da classe DateInterval

<?php

$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');

?>

O exemplo acima produzirá:

4 days

Example #2 A classe DateInterval e os pontos de transferência

<?php

$interval = new DateInterval('P32D');
echo $interval->format('%d days');

?>

O exemplo acima produzirá:

32 days

Example #3 DateInterval e DateTime::diff() com os modificadores %a e %d

<?php

$janeiro = new DateTime('2010-01-01');
$fevereiro = new DateTime('2010-02-01');
$intervalo = $fevereiro->diff($janeiro);

// %a irá resultar no número total de dias.
echo $intervalo->format('%a dias totais')."\n";

// Enquanto %d irá apenas resultar no número de dias ainda não cobertos pelo
// mês.
echo $intervalo->format('%m mês, %d dias');

?>

O exemplo acima produzirá:

31 total days
1 month, 0 days

Notas

Note:

O método DateInterval::format() não recalcula pontos de transferência em strings de data/hora. Isto é esperado porque não é possível extrapolar valores como "32 days", o que poderia ser interpretado como qualquer coisa entre "1 month and 4 days" e "1 month and 1 day".

Veja Também