rzeżucha
5.03.2012, 16:49:08
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!
Zawsze? Mi zwraca wszystko normalnie, 3 godziny, 2 godziny, 4 minuty
rzeżucha
5.03.2012, 17:08:25
Jako data podaje date z bazy(typ datetime) wrzucona funkcja now(). Hmm no też mi się wydawało, że to powinno działać :S
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
5.03.2012, 17:32:17
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
5.03.2012, 17:38:22
teraz niektóre wyświetla jako -3, -2 -- na razie sie z tym poddaje
Pacio
5.03.2012, 17:45:19
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.
rzeżucha
5.03.2012, 17:52:44
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
Pacio
5.03.2012, 17:55:53
A jak dasz $r['DATA'] zamiast tej funkcji Kiedy() to pokazuje dobra date?
rzeżucha
5.03.2012, 17:57:06
-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) {
$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;
}
i też nie dziala
rzeżucha
5.03.2012, 17:58:52
Cytat
A jak dasz $r['DATA'] zamiast tej funkcji Kiedy() to pokazuje dobra date?
Tak wyświetla się dobra data.
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.