date_diff

funkcja

Oblicza różnicę między dwoma datami i zwraca obiekt DateInterval z liczbą lat, miesięcy, dni i innych składowych.

date_diff(DateTimeInterface $baseObject, DateTimeInterface $targetObject, bool $absolute = false): DateInterval

date_diff porównuje dwa obiekty implementujące DateTimeInterface (np. DateTime lub DateTimeImmutable) i zwraca obiekt DateInterval. Właściwość ->days zawiera łączną liczbę dni między datami, a metoda ->format() pozwala sformatować wynik — np. '%y lat, %m miesięcy, %d dni'. Jeśli $absolute jest false (domyślnie), wynik może być ujemny, gdy $targetObject jest wcześniejszy niż $baseObject.

<?php
declare(strict_types=1);

date_default_timezone_set('UTC');
$d1 = date_create('2024-01-01');
$d2 = date_create('2024-03-15');

$diff = date_diff($d1, $d2);

echo $diff->days;                        // 74
echo $diff->format('%y lat, %m mies., %d dni'); // 0 lat, 2 mies., 14 dni
echo $diff->format('%R%a dni');          // +74 dni