Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Porównywanie dat - błędy
kondix03
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.08.2010

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


Ostatnio potrzebne mi było napisać funkcję która porównuje 2 kompletne daty (data + godzina) i sprawdza różnicę między nimi. Użyłem funkcji mktime jednak funkcja nie działała tak jak chciałem.
Funkcja:
  1. function returnTime($date1, $date2, $hour1, $hour2, $check)
  2. {
  3. $hour1e = explode(':', $hour1);
  4. $date1e = explode('-', $date1);
  5. $mk1 = mktime($hour1e[0], $hour1e[1], $hour1e[2], $date1e[1], $date1e[2], $date1e[0]);
  6. $hour2e = explode(':', $hour2);
  7. $date2e = explode('-', $date2);
  8. $mk2 = mktime($hour2e[0], $hour2e[1], $hour2e[2], $date2e[1], $date2e[2], $date2e[0]);
  9. $roz = $mk1 - $mk2;
  10. if($roz >= $check){
  11. return 0;
  12. }
  13. else{
  14. $return = $check - $roz;
  15. return $return;
  16. }
  17. }

Wywołanie:
  1. $podroz = mysql_fetch_assoc(mysql_query("SELECT * FROM podroz WHERE owner = ".$player -> id));
  2. $date = $podroz['date'];
  3. $hour = $podroz['hour'];
  4. $duration = $podroz['duration'];
  5. $date_now = date("Y-m-s");
  6. $hour_now = date("H-i-s");
  7. $czas = returnTime($date_now, $date, $hour_now, $hour, $duration);
Go to the top of the page
+Quote Post
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Bo użyć strtotime było za trudno wink.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
kondix03
post
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.08.2010

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


Kurde, coś mi nie wychodzi... Użyłem tej funkcji ale nadal zwraca 0. Albo jestem ułomny albo nie rozumiem jak ona działa.
Funkcja:
  1. function returnTime($date1, $hour1, $check){
  2. $hour1e = explode(':', $hour1);
  3. $date1e = explode('-', $date1);
  4. $mk1 = mktime($hour1e[0], $hour1e[1], $hour1e[2], $date1e[1], $date1e[2], $date1e[0]);
  5. $strto = strtotime('-'.$check.' seconds');
  6. if($mk1 >= $strto){
  7. return 0;
  8. }
  9. else{
  10. $roz = $strto - $mk1;
  11. return $roz;
  12. }
  13. }
Wywołanie:
  1. $podroz = mysql_fetch_assoc(mysql_query("SELECT * FROM podroz WHERE owner = ".$player -> id));
  2. $date = $podroz['date'];
  3. $hour = $podroz['hour'];
  4. $duration = $podroz['duration'];
  5. $czas = returnTime($date, $hour, $duration);

Jak ktoś by wytłumaczył mi jak użyć tej funkcji to byłbym wdzięczny smile.gif

EDIT
Coś tam popróbowałem jednak coś mi nie chce przekazywać pól z bazy czy coś w tym stylu :/

Ten post edytował kondix03 28.06.2011, 20:12:27
Go to the top of the page
+Quote Post
Piogola
post
Post #4





Grupa: Zarejestrowani
Postów: 151
Pomógł: 36
Dołączył: 1.02.2011
Skąd: Warszawa

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


  1. $czas = strtotime($date.' '.$hour.' -'.$check.' seconds');
  2. if($czas < 0) $czas=0;


--------------------
Google Manual
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




Po chu... steczkę rozbijasz datę i czas?
  1. $bazowy = strtotime( $date1.' '.$hour1 );
  2. $inny = strtotime( $date2.' '.$hour2 );

Obie zmienne to będzie timestamp. No chyba że spaprałeś to jakimś dziwnym formatem czasu lub daty wink.gif

Różnicę chyba umiesz policzyć :/ Podstawowe umiejętności korzystania z manuala się kłaniają jednak...


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
kondix03
post
Post #6





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 30.08.2010

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


Dobra działa, jakoś po chińsku ten kod napisałem, zero ładu i składu. Teraz już wszystko działa, wielkie dzięki za pomoc, do zamknięcia.
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: 20.08.2025 - 13:30