Jesteś tutaj: webmade.org >> porady >> php + mysql
autor: Patryk 'yarpo' Jar, ostatnia modyfikacja: 2007-08-17
obliczanie czasu między datami
php Przyjmijmy, że mamy dwa zdarzenia. Początek i koniec wycieczki. I są one umieszczone w bazie danych (obie kolumny mają typ datetime), więc zapisane są w taki sposób:
yyyy-mm-dd hh:mm:ss
Jak więc obliczyć ile dni / miesiący / lat dzieli te dwa zdarzenia... Nie da się ich od siebie w takiej formie odjąć, gdyż są to w PHP zwykłe ciągi znaków...
Można zaproponuję, więc moje rozwiązanie. Najpierw sprowadźmy to na ziemię, czyli do uniksowego znacznika czasu:
function uniksowy_znacznik_czasu($start, $koniec) {
$start = strtotime($start);
$koniec = strtotime($koniec);
return $koniec-$start;
}Tym sposobem uzyskaliśmy różnicę między tymi dwoma zdarzeniami wyrażoną w sekundach. No, ale wynik np: „23454323sekund byłeś poza granicami Polski” nikogo na stronie nie zadowoli. Skorzystajmy więc z kolejnej funkcji:
function uniksowy2liczb($czas) {
$wynik = array();
// zmienne pomocne przy obliczeniach (dlugość w sekundach)
$tydzien = 7*24*60*60;
$dzien = 24*60*60;
$godzina = 60*60;
$minuta = 60;
if (($wynik[0] = intval($czas/$tydzien)))
$czas %= $tydzien;
if (($wynik[1] = intval($czas/$dzien)))
$czas %= $dzien;
if (($godzina[2] = intval($czas/$godzina)))
$czas %= $godzina;
$wynik[3] = intval($czas/$minuta);
return $wynik;
}Po odpowiednim wywołaniu tych funkcji otrzymujemy tablicę, w której na kolejnych pozycjach znajdują się coraz mniejsze „jednostki czasu”. Oczywiście można zrezygnować z tygodni i zostawić same dni, czy też godziny. Jednak to niech już będzie zabawa dla ciekawskich :).
Warto byłoby także zapoznać się z:
Patryk 'yarpo' Jar
szukaj:
obliczanie czasu między datami
php
Osoby czytające tę publikację przeglądały również:
blog
porady
artykuły
recenzje
wiadomości

© 2004-2008 copyright by webmade.org