PHP - obliczanie wieku osoby na podstawie daty urodzenia i daty teraźniejszej

DZIAŁANIE: Mam 26 lat

Kod:

Ewentualne Objaśnienia:

Oto jedna z możliwości obliczania różnicy dni między dwoma datami - tutaj między datą urodzenia, a dniem dzisiejszym. Nie jest to do końca najlepsza metoda, ale o tym na końcu. Obliczamy tutaj różnicę między dwoma datami, które wcześniej przekształciliśmy funkcją mktime, którą już znacie.
Rzecz jasna nasza różnica po obliczeniu nadal jest w sekundach więc trzeba ją "przerobić" z sekund na lata - więc dzielimy odpowiednio przez 365dni razy 24 godziny razy 60minut razy 60 sekund. Z takiego dzielenia wyciągamy część całkowitą ( floor - zaokrągla również w dół, żeby nie pokazywać, że osoba ma na przykład 30 lat zanim nie ukończy tego wieku ).

Jak mówiłem nie jest to idealna metoda - korzystamy ze znaczników unixowych jakie dostajemy dzięki mktime, jednak jak wiadomo działania takie mają sens na datach powyżej 1970 roku. Kolejna wada to brak uwzględnienia lat przestępnych czy też zmiany czasu letniego na zimowy w dniu urodzenia. W przyszłości pokażę jeszcze inny przykład .