DateInterval
PHP Manual

DateInterval::format

(PHP 5 >= 5.3.0, PHP 7)

DateInterval::formatFormata um intervalo

Descrição

public string DateInterval::format ( string $format )

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 Years, numeric, at least 2 digits with leading 0 01, 03
y Anos, em representação numérica 1, 3
M Meses, em presentação numérica, com dois dígitos e zero à esquerda 01, 03, 12
m Meses, em presentação numérica 1, 3, 12
D Dias, em presentação numérica, com dois dígitos e zero à esquerda 01, 03, 31
d Dias, em presentaçã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 presentação numérica, com dois dígitos e zero à esquerda 01, 03, 23
h Horas, em presentação numérica 1, 3, 23
I Minutos, em presentação numérica, com dois dígitos e zero à esquerda 01, 03, 59
i Minutos, em presentação numérica 1, 3, 59
S Segundos, em presentação numérica, com dois dígitos e zero à esquerda 01, 03, 57
s Segundos, em presentação numérica 1, 3, 57
R Sinal "-" quando negativo, "+" quando positivo -, +
r Sinal "-" quando negativo, sem sinal quando positivo -,

Valor Retornado

Retorna o intervalo formatado.

Notas

Nota:

O método DateInterval::format() não recalcula os pontos de transferência em strings de tempo que não estejam no segmento da data. Isso é esperado por que não é possível extrapolar valores como em "32 dias" que pode ser interpretado como "1 mês e 4 dias" e até "1 mês e 1 dia".

Exemplos

Exemplo #1 Exemplo da classe DateInterval

<?php

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

?>

O exemplo acima irá imprimir:

4 days

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

<?php

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

?>

O exemplo acima irá imprimir:

32 days

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

<?php

$january 
= new DateTime('2010-01-01');
$february = new DateTime('2010-02-01');
$interval $february->diff($january);

// %a will output the total number of days.
echo $interval->format('%a total days')."\n";

// While %d will only output the number of days not already covered by the
// month.
echo $interval->format('%m month, %d days');

?>

O exemplo acima irá imprimir:

31 total days
1 month, 0 days

Veja Também


DateInterval
PHP Manual