Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] funkcja dzisiaj, wczoraj
Forum PHP.pl > Forum > PHP
M@X
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. ?>
AlexDeLarge
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'));

michaJlS
Jest jeszcze jedna taka zajebiaszcza fjca w php jak http://php.net/manual/en/function.strtotime.php - popatrz po przykładach, to Ci może życie ułatwi.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.