(PHP 5 >= 5.3.0, PHP 7)
DateInterval::__construct — Cria um novo objeto DateInterval
$interval_spec
)Cria um novo objeto DateInterval.
interval_spec
Uma 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) }