227 of 410 menu

Classe DateInterval

A classe DateInterval permite trabalhar com intervalos de tempo em PHP. Ela é usada para armazenar a diferença entre duas datas ou para definir um intervalo em métodos de manipulação de datas. O intervalo é criado em um formato específico.

Sintaxe

DateInterval::__construct(string $duration)

Formato do intervalo

O formato consiste na letra P (period) e nos elementos:

P{y}Y{m}M{d}DT{h}H{m}M{s}S{w}W

Neste formato: Y - anos, M - meses, D - dias, T - separador de tempo, H - horas, M - minutos, S - segundos, W - semanas.

Antes dessas letras, é necessário escrever o valor correspondente. Por exemplo, 3Y significará três anos, e 5Y2M significará 5 anos e 2 meses.

Após a criação, o objeto DateInterval conterá as seguintes propriedades:

<?php $interval->y // anos $interval->m // meses $interval->d // dias $interval->h // horas $interval->i // minutos $interval->s // segundos $interval->f // microssegundos $interval->invert // 1 se o intervalo for negativo $interval->days // número de dias (se criado via diff()) ?>

Vamos ver o funcionamento do intervalo com exemplos:

Exemplo

Vamos criar um intervalo de 1 hora, 45 minutos e 30 segundos:

<?php $interval = new DateInterval('PT1H45M30S'); var_dump($interval); ?>

Resultado da execução do código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 1 'i' => 45 's' => 30 )

Exemplo

Vamos criar um intervalo de 3 semanas e 2 dias:

<?php $interval = new DateInterval('P3W2D'); var_dump($interval); ?>

Resultado da execução do código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 23 'h' => 0 'i' => 0 's' => 0 )

Exemplo

Vamos criar um intervalo de 5 meses, 10 dias e 6 horas:

<?php $interval = new DateInterval('P5M10DT6H'); var_dump($interval); ?>

Resultado da execução do código:

DateInterval Object ( 'y' => 0 'm' => 5 'd' => 10 'h' => 6 'i' => 0 's' => 0 )

Exemplo

Vamos criar um intervalo de 2 anos e 15 minutos:

<?php $interval = new DateInterval('P2YT15M'); var_dump($interval); ?>

Resultado da execução do código:

DateInterval Object ( 'y' => 2 'm' => 0 'd' => 0 'h' => 0 'i' => 15 's' => 0 )

Exemplo

Vamos criar um intervalo de 1 dia, 12 horas e 30 segundos:

<?php $interval = new DateInterval('P1DT12H30S'); var_dump($interval); ?>

Resultado da execução do código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 1 'h' => 12 'i' => 0 's' => 30 )

Exemplo

Vamos criar um intervalo negativo de 1 ano e 3 meses (intervalo para trás):

<?php $interval = new DateInterval('P1Y3M'); $interval->invert = 1; var_dump($interval); ?>

Resultado da execução do código:

DateInterval Object ( 'y' => 1 'm' => 3 'd' => 0 'h' => 0 'i' => 0 's' => 0 'invert' => 1 )

Exemplo

Vamos criar um intervalo negativo de 2 horas, 30 minutos (intervalo para trás):

<?php $interval = new DateInterval('PT2H30M'); $interval->invert = 1; var_dump($interval); ?>

Resultado da execução do código:

DateInterval Object ( 'y' => 0 'm' => 0 'd' => 0 'h' => 2 'i' => 30 's' => 0 'invert' => 1 )

Exemplo

Vamos adicionar um intervalo à data atual:

<?php $date = new DateTime('2023-01-01'); $interval = new DateInterval('P10D'); $date->add($interval); echo $date->format('Y-m-d'); ?>

Resultado da execução do código:

'2023-01-11'

Exemplo

Vamos calcular a diferença entre duas datas:

<?php $date1 = new DateTime('2023-01-01'); $date2 = new DateTime('2023-02-15'); $interval = $date1->diff($date2); echo $interval->format('%m meses %d dias'); ?>

Resultado da execução do código:

'1 meses 14 dias'

Veja também

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar