pabloxj
17.05.2010, 20:13:57
Witam. Wiem, że jest dużo tematów tego rodzaju ale nigdzie nie mogę znaleźć rozwiązania.
Chodzi o to, że mam w bazie pole typu datetime czyli datę z czasem i chciałbym oblicz różnicę między tą datą a datą aktualną, a potem móc tą różnicę wyświetlać lub sprawdzać ile wynosi aby porównywać z jakimiś wartościami,np. czy różnica <=0. Próbowałem różnych opcji ale nic nie idzie.
Prosze o szybką pomoc
parzygnat
17.05.2010, 20:20:51
poczytaj trochę o:
date()
mktime()
time()
i napewno coś wymyślisz?
A jakiego typu masz to pole w bazie danych?
wookieb
17.05.2010, 20:21:04
Nie możesz poprostu przejrzec funkcji z manuala?
http://dev.mysql.com/doc/refman/5.1/en/dat...nction_datediffUwierz mi, że jest tam ta której potrzebujesz.
pabloxj
17.05.2010, 20:29:34
pole typu datetime
wookieb
17.05.2010, 20:34:19
TIMEDIFF I TIME_TO_SEC!
DATEDIFF podobnie
pabloxj
17.05.2010, 20:38:22
no właśnie próbuje i nic mi nie chodzi. a chciałbym uzyskać efekt w różnicy nie tylko dni ale nawet sekund ponieważ chciałem wykorzystać to do stopera, który odlicza czas do rozpoczęcia.
Fifi209
17.05.2010, 20:44:11
Cytat(pabloxj @ 17.05.2010, 21:38:22 )

no właśnie próbuje i nic mi nie chodzi. a chciałbym uzyskać efekt w różnicy nie tylko dni ale nawet sekund ponieważ chciałem wykorzystać to do stopera, który odlicza czas do rozpoczęcia.
To chyba potrafisz przeliczyć dni na sekundy...?
pabloxj
17.05.2010, 20:48:36
no tak, z tym że nie mogę obliczyc nawet dni:/
parzygnat
17.05.2010, 20:55:48
$date wychodzi w sekundach
Fifi209
17.05.2010, 20:58:55
~wookieb podał Ci jedno rozwiązanie po stronie MySQL, możesz próbować po stronie PHP
Datetime PHP
pabloxj
17.05.2010, 21:47:24
[PHP] pobierz, plaintext
1.
$date = time() - strtotime($date_z_bazy);
[PHP] pobierz, plaintext
fakt dostaje jakiś wynik i chyba jest w sekundach, ale jak to sformatować do normalnego czasu bo tutaj są jakieś astronomiczne wartości?
Fifi209
17.05.2010, 21:58:25
Cytat(pabloxj @ 17.05.2010, 22:47:24 )

[PHP] pobierz, plaintext
1.
$date = time() - strtotime($date_z_bazy);
[PHP] pobierz, plaintext
fakt dostaje jakiś wynik i chyba jest w sekundach, ale jak to sformatować do normalnego czasu bo tutaj są jakieś astronomiczne wartości?
Nie dziwić się tylko zaglądnąć do linku wookieb i mojego. ;]
suny79
17.05.2010, 22:23:10
Witam, przyłączę się do wątku dat.
Stosuję mktime() do obliczenia, która data jest wcześniejsza, a która późniejsza.
Dostaję taki błąd:
...on line 398: mktime() expects parameter 4 to be long, string given
$y1 = mktime(0, 0, 0, $month_od, $day_od, $year_od);
Pod $month jest 5.
Tu mam podjrzenie, że kompilator php czepia się, że to może jest string, a powinien być long. Przechowuję datę w bazie w postaci stringu: '2010-5-23', którą rozbijam sobie i analizuję. Co z tym zrobić by nie rzucało takimi błędami?
Dzięki za pomoc.
Włodek.
OK, pomogło zwykłe rzutowanie na INTa:
$month = (int)$month;
Pozdrawiam,
Włodek.
pabloxj
17.05.2010, 22:25:41
szczerze nie wiem czy to zmeczenie czy niewiedza, ale cały czas nie mam pomysłu na to. Próbuje korzystać z Waszych rad, ale cały czas coś nie idzie. Jeśli ktoś będzie mógł pomóc bardziej to bedę wdzięczny, ale oczywiście też dziękuje za porady rozwiązań.
croc
17.05.2010, 23:33:57
SELECT time_to_sec(now()) - time_to_sec(pole_datetime) FROM tabela
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.