(PHP 5 >= 5.3.0, PHP 7)
DateInterval::__construct — Cria um novo objeto DateInterval
$interval_spec
)Cria um novo objeto DateInterval.
interval_specUma especificação de intervalo.
O formato inicia-se com a letra P,
de período.
Cada período de duração é representado por um valor inteiro
seguido do designador de período.
Se a duração conter elementos de tempo, essa porção
da especificação é precedida pela letra
T.
| Designador de Período | Descrição |
|---|---|
| Y | anos |
| M | meses |
| D | dias |
| W | semanas. Essa é convertida em dias, portanto não pode ser combinada com D. |
| H | horas |
| M | minutos |
| S | segundos |
Alguns exemplos simples. Dois dias é representado com P2D. Dois segundos é representado com PT2S. Seis anos e cinco minutos é representado com P6YT5M.
Nota:
O tipo de unidade deve ser inserida da unidade de maior escala a esquerda da de menor escala, essa a direta. Então, anos antes de meses, meses antes de dias, dias antes de minutos, e etc. Assim, um ano e quatro dias deve ser representado com P1Y4D, e não P4D1Y.
A especificação também pode ser representada como data e hora. Um exemplo de um ano e quatro dias seria P0001-00-04T00:00:00. Porém, valores neste formato não podem exceder o tamanho máximo do período (por exemplo 25 horas é inválido).
Estes formatos são baseados na » ISO 8601 duration specification.
Lança uma exceção Exception quando o parâmetro interval_spec
não conseguir ser interpretado como um intervalo.
Exemplo #1 Exemplo da classe DateInterval
<?php
$interval = new DateInterval('P2Y4DT6H8M');
var_dump($interval);
?>
O exemplo acima irá imprimir:
object(DateInterval)#1 (8) {
["y"]=>
int(2)
["m"]=>
int(0)
["d"]=>
int(4)
["h"]=>
int(6)
["i"]=>
int(8)
["s"]=>
int(0)
["invert"]=>
int(0)
["days"]=>
bool(false)
}