(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::format — Formata um intervalo
$format
): stringFormata um intervalo.
format
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 |
- ,
|
Retorna o intervalo formatado.
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"
.
Exemplo #1 Exemplo da classe DateInterval
<?php
$interval = new DateInterval('P2Y4DT6H8M');
echo $interval->format('%d days');
?>
O exemplo acima produzirá:
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 produzirá:
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 produzirá:
31 total days 1 month, 0 days