Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Kalendarz z aktualnym tygodniem
Forum PHP.pl > Forum > Przedszkole
Barcelona
Witam, mam działający skrypt kalendarza, który pobiera z bazy oraz pogrubia dni w których było jakieś wydarzenie.

  1. function kalendarz($ile) {
  2. $znacznik = mktime(0, 0, 0, date("m")+$ile, 1);
  3. $iledni = date("t", $znacznik);
  4. $start = date("w", $znacznik);
  5. $miesiac = date("m", $znacznik);
  6. $rok = date("Y", $znacznik);
  7. $miesiace = array(
  8. "Styczeń", "Luty", "Marzec", "Kwiecień", "Maj", "Czerwiec",
  9. "Lipiec", "Sierpień", "Wrzesień", "Październik", "Listopad", "Grudzień"
  10. );
  11. $od = date("Y-m-d", mktime(0, 0, 0, $miesiac, 1, $rok));
  12. $do = date("Y-m-d", mktime(0, 0, 0, $miesiac, $iledni, $rok));
  13. $uzyte = array();
  14.  
  15. $wynik = mysql_query("SELECT DATE(data) AS data FROM produkcja
  16. WHERE data BETWEEN '$od' AND '$do' GROUP BY DATE(data)");
  17. while($wynik and $dane=mysql_fetch_assoc($wynik)) $uzyte[] = $dane['data'];
  18.  
  19.  
  20. // rysuję kalendarz
  21. echo "<table border='1' cellspacing='0' cellpadding='2'><tr><td>";
  22. echo "<a href='{$_SERVER['REQUEST_URI']}&ile=".($ile-1)."'>&lt;&lt;</a>";
  23. echo "</td><td colspan='5' align='center'>";
  24. echo $miesiace[$miesiac-1]." $rok</td><td align='right'>";
  25. echo "<a href='{$_SERVER['REQUEST_URI']}&ile=".($ile+1)."'>&gt;&gt;</a>";
  26. echo "</td></tr>";
  27. echo "<tr><td>Nd</td><td>Pn</td><td>Wt</td><td>Śr</td>
  28. <td>Cz</td><td>Pt</td><td>So</td></tr>";
  29. echo "<tr align='right'>";
  30. if ($start>0) echo "<td colspan='$start'>&nbsp;</td>";
  31. else $pierwszy=true;
  32. for ($i=1;$i<=$iledni;$i++) {
  33. $dzien = date("w", mktime(0, 0, 0, $miesiac, $i, $rok));
  34. if ($dzien==0 and !$pierwszy) echo "</tr><tr align='right'>";
  35. $pierwszy = false;
  36. // tu jest wersja dla uzytej i pustej daty:
  37. if (in_array(date("Y-m-d", mktime(0, 0, 0, $miesiac, $i, $rok)), $uzyte)) {
  38. echo "<td><b>$i</b></td>"; // uzyta
  39. } else {
  40. echo "<td>$i</td>"; // pusta
  41. }
  42. }
  43. $koniec=7-($start+$iledni)%7;
  44. if ($koniec<>7) echo "<td colspan='$koniec'>&nbsp;</td>";
  45. echo "</tr></table>";
  46. }
  47. kalendarz((int)$_GET["ile"]);


Czego wynikiem jest taki kalendarzyk:



Ja potrzebuje taką małą modyfikację, która zaznaczała by aktualny tydzień

Teraz mamy 5 tydzień a więc coś tego typu:




Pozdrawiam
thek
A nie możesz wykorzystać funkcji zwracającej tydzień roku? Zobacz dokładnie sobie co można walnąć do funkcji date, bo nie tylko 'Y-m-d H:i:s' wink.gif
Barcelona
Znam funkcję date i opcję "W".
Jednak nie wiem w jaki sposób zastosować to w tym skrypcie dry.gif
thek
Sprawdzić wink.gif Jeśli spasuje się tydzień aktualnej daty (lub będzie jeden różnicy w zależności czy tydzień liczysz od poniedziałku czy niedzieli) oraz tydzień pierwszego dnia tygodnia (niedziela lub poniedziałek) to możesz wszystkim dniom w danym tygodniu nadać klasę odpowiednią lub też elementowi przechowującemu te dni.
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.