(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ãoP4D1Y
.
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) }