(PHP 5 >= 5.3.0, PHP 7)
DateInterval::format — Formata um intervalo
$format
)Formata 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 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