Metodo diff della classe DateTime

Il metodo diff della classe DateTime accetta come parametro un altro oggetto DateTime e restituisce un oggetto DateInterval, contenente la differenza tra le date. La differenza può essere ottenuta in varie unità di misura (giorni, mesi, anni, ecc.).

Sintassi

php$interval = $datetime1->diff($datetime2);

Esempio

Calcoliamo la differenza tra due date:

php<?php
  $date1 = new DateTime('2023-01-01');
  $date2 = new DateTime('2023-02-15');
  $interval = $date1->diff($date2);
  echo $interval->format('%R%a days');
?>

Risultato dell'esecuzione del codice:

php'+45 days'

Esempio

Otteniamo la differenza in mesi e giorni:

php<?php
  $date1 = new DateTime('2023-03-10');
  $date2 = new DateTime('2023-05-25');
  $interval = $date1->diff($date2);
  echo $interval->format('%m months %d days');
?>

Risultato dell'esecuzione del codice:

php'2 months 15 days'

Esempio

Confronto di date con considerazione dell'ora:

php<?php
  $date1 = new DateTime('2023-01-01 10:00:00');
  $date2 = new DateTime('2023-01-01 14:30:00');
  $interval = $date1->diff($date2);
  echo $interval->format('%h hours %i minutes');
?>

Risultato dell'esecuzione del codice:

php'4 hours 30 minutes'

Vedi anche

  • la funzione date,
    che formatta data e ora
  • la funzione strtotime,
    che converte una stringa in un timestamp
  • la classe DateInterval,
    che rappresenta un intervallo di date