Jak wyświetlić różnicę czasową zapisaną w formie dni, godzin, minut i sekund?
piechnat
W PHP czas podawany jest w formacie UNIX'owym czyli w ilości sekund, które upłynęły od daty pierwszego stycznia 1970 roku.
<?
//przekształcamy datę w przeszłości do formatu unix'owego
$data = strtotime("2003-02-08 12:32:30");
//pobieramy bieżący czas
$teraz = time();
//różnice dzielimy przez jeden dzień czyli 60 s. * 60 m. * 24 godz.
$dni_r = ($teraz - $data) / (60 * 60 * 24);
//część całkowita z dzielenia to liczba dni
$dni_c = floor($dni_r);
//resztę z dzielenia mnożymy przez dobę
$godzin_r = ($dni_r - $dni_c) * 24;
//część całkowita z mnożenia to liczba godzin
$godzin_c = floor($godzin_r);
//resztę mnożymy przez godzinę
$minut_r = ($godzin_r - $godzin_c) * 60;
//część całkowita to liczba minut
$minut_c = floor($minut_r);
//część całkowita reszty pomnożonej przez minutę to liczba sekund
$sekund_c = floor(($minut_r - $minut_c) * 60);
echo "Od daty ".date("Y-m-d H:i:s", $data)." upłynęło:<br>";
echo "Dni: $dni_c, Godzin: $godzin_c, Minut: $minut_c, Sekund: $sekund_c";