Portál AbcLinuxu, 10. listopadu 2025 14:42
SELECT DATEDIFF(CURDATE(), datum) AS `interval` FROM tabulka
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP('2006-10-10 10:10:10') - UNIX_TIMESTAMP('2006-09-10 10:00:00')) ale to znemožní odčítat data starší než 1970.
http://cz2.php.net/manual/cs/function.strtotime.php
http://cz2.php.net/manual/cs/function.date.php
takze, pisu to z hlavy a nemam to odzkouseno, ale:
date("Y-m-d H:i:s", strtotime($date1)-strtotime($date2));
Obávam sa, že výsledkom toho date() bude v tomto prípade zbytočne mätúci údaj vyzerajúci nejak takto: 1970-01-?? ??:??:??. Tie strtotime() sú OK, sám ich už dlho používam na konverziu z ISO-tvaru na timestamp. Aj ten rozdiel je OK - vráti rozdiel oboch údajov v sekundách. Ale to spätné naformátovanie na dátum je nezmyslom, pretože timestamp nemá začiatok v roku 0. Ak treba zo sekúnd vyrátať minúty, hodiny, dni, tak pomôže len delenie.
$sek=strtotime($date1)-strtotime($date2); $min=floor($sek/60); $sek=$sek%60; $hod=floor($min/60); $min=$min%60; $dni=foor($hod/24); $hod=$hod%60; echo "Rozdiel je $dni dni, $hod hodin, $min minut a $sek sekund.\n";
$hod=$hod%24; // nie %60
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.