Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/mysql] funkcja dzisiaj, wczoraj
M@X
post
Post #1





Grupa: Zarejestrowani
Postów: 212
Pomógł: 0
Dołączył: 18.12.2003
Skąd: Warszawa

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


Witam.
Mam taką funkcje która pobiera z bazy date w formacie DATETIME 0000-00-00 00:00:00
Funkcja porównuje date dzisiejszą do tej z bazy więc jeśli w bazie jest np: 2010-09-01 to wyświetla napis: "dzisiaj", natomiast jeśli w bazie jest 2010-08-31 to wyświetla napis "wczoraj", w każdym innym wypadku powinna wyświetlać po prostu date z bazy.
Wszystko fajnie działało jednak w momencie jak sie pojawił nowy miesiąc, to nagle wszystkie daty starsze niż wczoraj, pokazują napis wczoraj. Jak to można rozwiązać ?

  1. <?
  2. function kiedydata($czas) {
  3.  
  4. $tab = explode(" ",$czas);
  5. $dzisiaj = date('Y-m-d');
  6. $wczoraj = explode("-",$tab[0]);
  7. $p_wczoraj = explode("-",$dzisiaj);
  8. if (($p_wczoraj[2] - $wczoraj[2]) == 1 || ($p_wczoraj[2] - $wczoraj[2]) < 0)
  9. $tab[0] = "Wczoraj";
  10. if ($tab[0] == $dzisiaj)
  11. $tab[0] = "Dzisiaj";
  12.  
  13. return $tab[0]." <small>".$tab[1]."</small>";
  14. }
  15. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
AlexDeLarge
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 14
Dołączył: 14.02.2010

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


Podpowiem, że "wczoraj" zaczyna się na:

  1. mktime(0, 0, 0, date('m'), date('d')-1, date('Y'));


a kończy:
  1. mktime(23, 59, 59, date('m'), date('d')-1, date('Y'));

Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 10.06.2026 - 13:14