227 of 410 menu

Classe DateInterval

La classe DateInterval permette di lavorare con intervalli temporali in PHP. Viene utilizzata per memorizzare la differenza tra due date o per specificare un intervallo nei metodi di lavoro con le date. L'intervallo viene creato in un formato speciale.

Sintassi

DateInterval::__construct(string $duration)

Formato dell'intervallo

Il formato consiste nella lettera P (period) e negli elementi:

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

In questo formato: Y - anni, M - mesi, D - giorni, T - separatore del tempo, H - ore, M - minuti, S - secondi, W - settimane.

Prima di queste lettere è necessario scrivere il valore corrispondente. Ad esempio, 3Y significherà tre anni, mentre 5Y2M indicherà 5 anni e 2 mesi.

Dopo la creazione, l'oggetto DateInterval conterrà le seguenti proprietà:

<?php $interval->y // anni $interval->m // mesi $interval->d // giorni $interval->h // ore $interval->i // minuti $interval->s // secondi $interval->f // microsecondi $interval->invert // 1 se l'intervallo è negativo $interval->days // numero di giorni (se creato tramite diff()) ?>

Vediamo il funzionamento dell'intervallo con degli esempi:

Esempio

Creiamo un intervallo di 1 ora, 45 minuti e 30 secondi:

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

Risultato dell'esecuzione del codice:

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

Esempio

Creiamo un intervallo di 3 settimane e 2 giorni:

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

Risultato dell'esecuzione del codice:

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

Esempio

Creiamo un intervallo di 5 mesi, 10 giorni e 6 ore:

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

Risultato dell'esecuzione del codice:

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

Esempio

Creiamo un intervallo di 2 anni e 15 minuti:

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

Risultato dell'esecuzione del codice:

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

Esempio

Creiamo un intervallo di 1 giorno, 12 ore e 30 secondi:

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

Risultato dell'esecuzione del codice:

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

Esempio

Creiamo un intervallo negativo di 1 anno e 3 mesi (intervallo all'indietro):

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

Risultato dell'esecuzione del codice:

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

Esempio

Creiamo un intervallo negativo di 2 ore, 30 minuti (intervallo all'indietro):

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

Risultato dell'esecuzione del codice:

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

Esempio

Aggiungiamo un intervallo alla data corrente:

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

Risultato dell'esecuzione del codice:

'2023-01-11'

Esempio

Calcoliamo la differenza tra due date:

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

Risultato dell'esecuzione del codice:

'1 mesi 14 giorni'

Vedi anche

Italiano
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesia日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Utilizziamo i cookie per il funzionamento del sito, l'analisi e la personalizzazione. I dati vengono elaborati in conformità con la Politica sulla privacy.
accetta tutto personalizza rifiuta