array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'dateinterval.format.php', 1 => 'DateInterval::format', ), 'up' => array ( 0 => 'class.dateinterval.php', 1 => 'DateInterval', ), 'prev' => array ( 0 => 'dateinterval.createfromdatestring.php', 1 => 'DateInterval::createFromDateString', ), 'next' => array ( 0 => 'class.dateperiod.php', 1 => 'DatePeriod', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/datetime/dateinterval/format.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
DateInterval::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 | 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 |
- ,
|
Retorna o intervalo formatado.
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. |
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
$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
Nota:
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"
.