![]() |
![]() ![]() |
![]() |
-rzeżucha- |
![]()
Post
#1
|
Goście ![]() |
Kod function Kiedy($data) { $start = strtotime($data); $koniec = strtotime("now"); $czas = $koniec - $start; $dzien = 24*60*60; $godzina = 60*60; $minuta = 60; $kiedy = ""; if(($wynik['DNI'] = intval($czas/$dzien))) { $czas %= $dzien; if($kiedy=="")$kiedy .= $wynik['DNI']." dni temu"; } if (($wynik['GODZIN'] = intval($czas/$godzina))){ $czas %= $godzina; if($kiedy=="")$kiedy .= $wynik['GODZIN']." godz. temu"; } if(($wynik["MINUT"] = intval($czas/$minuta))){ $czas %= $minuta; if($kiedy=="")$kiedy .= $wynik["MINUT"]." min. temu"; } if($kiedy=="")$kiedy .= $czas." s temu"; return $kiedy; } Zawsze zwraca "-4 godz. temu" Witam, może ktoś wie co zrobiłem źle? Chciałem by zwracało np 5 min temu, 1 dzień temu itp. Z góry dzięki za odpowiedz! |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 133 Pomógł: 8 Dołączył: 23.09.2011 Skąd: Stromiec Ostrzeżenie: (0%) ![]() ![]() |
Zawsze? Mi zwraca wszystko normalnie, 3 godziny, 2 godziny, 4 minuty
-------------------- |
|
|
-rzeżucha- |
![]()
Post
#3
|
Goście ![]() |
Jako data podaje date z bazy(typ datetime) wrzucona funkcja now(). Hmm no też mi się wydawało, że to powinno działać :S
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 133 Pomógł: 8 Dołączył: 23.09.2011 Skąd: Stromiec Ostrzeżenie: (0%) ![]() ![]() |
datetime czyli? time() czy date('d.m.Y, H:i'); ? Przecież możesz sobie to w dowolny sposób przerabiać, podawać time() do funkcji, i usunąć konwertowanie na time. Nie wiem w czym jest błąd, jak wygląda data z bazy? I może podaj ten kod którym wyciągasz z bazy i wywołujesz funkcję
-------------------- |
|
|
-rzeżucha- |
![]()
Post
#5
|
Goście ![]() |
tak wyswietlam(dodaje do strigu ktory jest potem wyswietlany) -
Kod ".Kiedy($r['DATA'])." a dodaje tak ze Kod query(" 1, 'cos', now()) czyli data jest w formacie w bazie jako datatime yyyy-mm-dd hh:mm:ss |
|
|
-rzeżucha- |
![]()
Post
#6
|
Goście ![]() |
teraz niektóre wyświetla jako -3, -2 -- na razie sie z tym poddaje
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 105 Pomógł: 27 Dołączył: 30.10.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Funkcja dziala poprawnie, wlacz obsluge bledow w PHP, bo byc moze interpretuje Twoje "now()" w parametrze query() jako funkcje. Poza tym sprawdz jakie konkretnie zapytanie idzie do bazy.
-------------------- Mój Blog Militarny: http://1rBlog.pl
|
|
|
-rzeżucha- |
![]()
Post
#8
|
Goście ![]() |
W bazie mam takie przykladowe daty:
Kod 2012-03-05 15:56:46 2012-03-05 14:58:21 2012-03-05 16:19:24 więc ok wysyła raczej, to samo z odbieraniem bo mam zapisany caly row($r) i wyswietla reszte ok :S |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 105 Pomógł: 27 Dołączył: 30.10.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
A jak dasz $r['DATA'] zamiast tej funkcji Kiedy() to pokazuje dobra date?
-------------------- Mój Blog Militarny: http://1rBlog.pl
|
|
|
-rzeżucha- |
![]()
Post
#10
|
Goście ![]() |
-4 godziny maja nowo dodane posty starsze maja -3 -2 itd. ale to i tak jest bez sensu
Aktualnie funkcja wygląda tak: Kod function Kiedy($data) { i też nie dziala
$czas = strtotime("now") - strtotime($data); $dzien = 24*60*60; $godzina = 60*60; $minuta = 60; $kiedy = ""; $wyn['DNI'] = intval($czas/$dzien); if($wyn['DNI']) { $czas %= $dzien; if($kiedy=="")$kiedy .= $wyn['DNI']." dni temu"; } $wyn['GODZIN'] = intval($czas/$godzina); if ($wyn['GODZIN']){ $czas %= $godzina; if($kiedy=="")$kiedy .= $wyn['GODZIN']." godz. temu"; } $wyn['MINUT'] = intval($czas/$minuta); if($wyn['MINUT']){ $czas %= $minuta; if($kiedy=="")$kiedy .= $wyn['MINUT']." min. temu"; } //if($kiedy=="")$kiedy .= $czas." s temu"; return $kiedy; } |
|
|
-rzeżucha- |
![]()
Post
#11
|
Goście ![]() |
Cytat A jak dasz $r['DATA'] zamiast tej funkcji Kiedy() to pokazuje dobra date? Tak wyświetla się dobra data. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 13:00 |