PDA

View Full Version : Razlika između datuma, mysql


AnteD
09-03-2005, 10:43
Jel neko zna zašto mi ovo vraća 02:15:00 (2 sata i 15 minuta)

FROM_UNIXTIME(UNIX_TIMESTAMP(time_end) - UNIX_TIMESTAMP(time_start), '%h:%i:%s')

gdje su
time_start
2005-03-09 00:45:00

time_end
2005-03-09 02:00:00

Logički razlika je 01:15:00 (1 sat i 15 minuta) a ne 2 i 15?

problem riješen uz pomoć TIMEDIFF ako će to nekome šta pomoći.....

Mala opaska..radi se o mysql 4.1.10..

gor
09-03-2005, 11:36
Moja ideja:

Kad si oduzeo dva timestampa dobio si timestamp vremane 1.1.1970 00:01:15 GMT. Onda je FROM_UNIXTIME prilagodio to vrijeme lokalnim postavkama servera, tj. dodao je 1h vrmenu jer smo mi 1h ispred GMT.

Teorija stoji ako je upit izveden na računalu kod kojag je vremenska zona postavljana na +1.

AnteD
09-03-2005, 11:39
Moguće..no kao što rekoh nisam odmah u manualu vidio TIMEDIFF() koji je dodan u verziji 4.1.1 i koji mi je rješio problem :)

Hvala na odgovoru...

eburza
12-09-2005, 20:02
evo ti moja funkcija ... možda pomogne
function timeBetweenTwoDates($firstDate, $secondDate) { # dateFormat yyyy-mm-dd, yyyy-mm-dd
$firstYear = substr($firstDate, 0, 4);
$firstMonth = substr($firstDate, 5, 2);
$firstDay = substr($firstDate, -2);

$secondYear = substr($secondDate, 0, 4);
$secondMonth = substr($secondDate, 5, 2);
$secondDay = substr($secondDate, -2);

$firstDateNew = mktime("", "", "", $firstMonth, $firstDay, $firstYear);
$secondDateNew = mktime("", "", "", $secondMonth, $secondDay, $secondYear);

$timeBetween = $secondDateNew - $firstDateNew;
$daysBetween = $timeBetween / (24 * 60 * 60);

return $daysBetween;
}