Η μέθοδος diff της κλάσης DateTime

Η μέθοδος diff της κλάσης DateTime δέχεται ως παράμετρο ένα άλλο αντικείμενο DateTime και επιστρέφει ένα αντικείμενο DateInterval, που περιέχει τη διαφορά μεταξύ των ημερομηνιών. Η διαφορά μπορεί να ληφθεί σε διάφορες μονάδες μέτρησης (μέρες, μήνες, χρόνια κ.λπ.).

Σύνταξη

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

Παράδειγμα

Ας υπολογίσουμε τη διαφορά μεταξύ δύο ημερομηνιών:

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

Αποτέλεσμα εκτέλεσης του κώδικα:

php'+45 days'

Παράδειγμα

Ας πάρουμε τη διαφορά σε μήνες και ημέρες:

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');
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php'2 months 15 days'

Παράδειγμα

Σύγκριση ημερομηνιών λαμβάνοντας υπόψη την ώρα:

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');
?>

Αποτέλεσμα εκτέλεσης του κώδικα:

php'4 hours 30 minutes'

Δείτε επίσης

  • την συνάρτηση date,
    που μορφοποιεί ημερομηνία και ώρα
  • την συνάρτηση strtotime,
    που μετατρέπει συμβολοσειρά σε χρονική σήμανση
  • την κλάση DateInterval,
    που αντιπροσωπεύει ένα διάστημα ημερομηνιών