![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 945 Pomógł: 7 Dołączył: 15.03.2005 Skąd: katowice Ostrzeżenie: (0%) ![]() ![]() |
Szukam skryptu na szybko który bedzie pokazywal mi date 4 dni temu, 5 dni temu, 6 dni temu 1 tydzien temu, 22.09.207 albo 1 minute temu itp... ma moze ktos takie cos ( to jest tu na forum ) fajnie by było jak by wyliczało date na podstawie time();
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 41 Pomógł: 1 Dołączył: 23.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Ten skrypt ma w sobie błąd. Np. jeśli data poda jako arg funkcji to np. 2008-08-24 20:00:00, a teraz jest (dzisiaj: 2008-08-25 17:00:00) to wyświetli się komunikat "dzisiaj 20:00:00", a powinno byc "wczoraj 20:00:00".
Jeśli jako argument funkcji getDiff podamy date 2008-08-24 12:00:00, a teraz jest 2008-08-25 17:00:00 to poprawnie wyświetli się komunikat "wczoraj 12:00:00", a to dlatego że minęlo ponad 24h. Tyle że to czy jest dziś czy wczoraj zależy nie od upłynięcia 24h a od upłynięcia północy. Błąd jest w tych linijkach: CODE if ($godzin > 6 && $godzin < 24) { return "dzisiaj ".date("H:i:s", $timestamp); } elseif ($godzin > 0 && $godzin < 24) { $restMinutes = ($minut-(60*$godzin)); $res = getMinutes($restMinutes); if ($godzin == 1) { return "godzinę temu ".$res; } else { return "$godzin godzin temu ".$res; } } if ($godzin >= 24 && $godzin <= 48) { return "wczoraj ".date("H:i:s", $timestamp); } Zamiast liczb 24 mozna byc uzywac date("H"); bieżącej godziny do porównywania czy mamy wyświetlić w komunikacie dzisiaj lub wczoraj. Próbowałem rozgryźć ten kod ale jak mi się udało jedno naprawić to inna rzecz przestawała działać. Mianowicie co jeśli porównujemy daty 2008-08-24 23:59:00 albo 2008-08-25 00:00:01 gdzie przedział czasu jest krótszy niż 1h i skrypt tu też się gubi nie odróżniając czy jest dziś czy wczoraj. Pomęczę sie jeszcze trochę z tym skryptem, może wreszcie zacznie mi to działać prawidłowo. Zna ktoś jakiś opensourcowy skrypt podobny do tego? Na last.fm mają fajnie to zrobione ponieważ w komunikatach są nawet dni podane, w poniedziałek rano, w niedzielę po południu, itp |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 19:07 |