Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Datetime-odejmowanie dwóch dat
pabloxj
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
parzygnat
post
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 6
Dołączył: 31.12.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


poczytaj trochę o:
date()
mktime()
time()
i napewno coś wymyślisz?

A jakiego typu masz to pole w bazie danych?
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Nie możesz poprostu przejrzec funkcji z manuala?
http://dev.mysql.com/doc/refman/5.1/en/dat...nction_datediff
Uwierz mi, że jest tam ta której potrzebujesz.


--------------------
Go to the top of the page
+Quote Post
pabloxj
post
Post #4





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2010

Ostrzeżenie: (0%)
-----


pole typu datetime
Go to the top of the page
+Quote Post
wookieb
post
Post #5





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk





TIMEDIFF I TIME_TO_SEC!
DATEDIFF podobnie

Ten post edytował wookieb 17.05.2010, 20:34:57


--------------------
Go to the top of the page
+Quote Post
pabloxj
post
Post #6





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Fifi209
post
Post #7





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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...?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
pabloxj
post
Post #8





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2010

Ostrzeżenie: (0%)
-----


no tak, z tym że nie mogę obliczyc nawet dni:/
Go to the top of the page
+Quote Post
parzygnat
post
Post #9





Grupa: Zarejestrowani
Postów: 155
Pomógł: 6
Dołączył: 31.12.2007
Skąd: Poznań

Ostrzeżenie: (0%)
-----


  1. $date = time() - strtotime($date_z_bazy);

$date wychodzi w sekundach
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


~wookieb podał Ci jedno rozwiązanie po stronie MySQL, możesz próbować po stronie PHP Datetime PHP


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
pabloxj
post
Post #11





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2010

Ostrzeżenie: (0%)
-----


[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?
Go to the top of the page
+Quote Post
Fifi209
post
Post #12





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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. ;]


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
suny79
post
Post #13





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 9.03.2010

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
pabloxj
post
Post #14





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 17.05.2010

Ostrzeżenie: (0%)
-----


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ń.
Go to the top of the page
+Quote Post
croc
post
Post #15





Grupa: Zarejestrowani
Postów: 706
Pomógł: 108
Dołączył: 12.03.2010

Ostrzeżenie: (0%)
-----


  1. SELECT time_to_sec(now()) - time_to_sec(pole_datetime) FROM tabela


Ten post edytował croc 17.05.2010, 23:34:19
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 18:07