[PHP] Odejmowanie dwóch dat. Zwracanie różnicy.

Jak przykładowo uzyskać ile lat, miesięcy, tygodni, dni minęło od określonej daty?

Thank you for reading this post, don't forget to subscribe!

Pisząc kolejny skrypt na moją stronkę potrzebowałem odpowiedzi na to pytanie…
Oczywiście poszukiwania rozpoczęły się od Google… Większość odpowiedzi pokierowało mi na formum php, jednakże tam nie odszukałem tej prawidłowej.. Po dłuższym wertowaniu googla odnalazłem pewne proste rozwiązanie. Które nadeszło z jedną z aktualizacji PHP.
Chodzi tu mianowicie o funkcje: date_diff
Jest to proste i szybkie rozwiązanie, które nie wymaga złożonego programowania. Ok. Przejdźmy do przykładu:

Rozwiązanie problemu odejmowania dwóch dat w php:

Kod wylicza różnicę dni pomiędzy dwoma datami:

$datetime1 = new DateTime('1995-10-15');
$datetime2 = new DateTime('2015-01-25');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%a dni');
//wynik to: 7042 dni

Ten natomiast wylicza ile minęło lat, miesięcy, dni oraz godzin od teraz (dziś):

$target = new DateTime('2015-06-21');
$today = new DateTime(date('Y-m-d\TH:i')); //Teraz: 2016-01-06 14:34
$interval= $today->diff($target);
echo $interval->format('%Y lat %m miesięcy %d dni %h godzin');
// wynik to : 00 lat 6 miesięcy 15 dni 14 godzin

Pełna specyfikację co do funkcji date_diff można znaleźć w tym miejscu:
Php_manual->date_diff
Natomiast formaty, które stosowałem w linii: $interval->format('%Y lat %m miesięcy %d dni %h godzin'); w tym miejscu:
Php_manual->DateInterval::format

Mam nadzieje, że udało mi się komuś pomóc..