Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Kalendarz, pola z innego miesiąca
shpaque
post
Post #1





Grupa: Zarejestrowani
Postów: 651
Pomógł: 3
Dołączył: 31.01.2011
Skąd: Warszawa

Ostrzeżenie: (10%)
X----


Witam serdecznie,
przerabiam sobie skrypt znaleziony w sieci - jest ok, pytanie tylko jak w nim zrobic, zeby pokazywal do pelnej tabeli dni miesiaca poprzedniego i kolejnego (np teraz w maju mamy poniedzialek 30 kwiecien i 1,2,3 czerwiec jeszcze w tym tygodniu) - zeby je pokazac sobie gdzies lekko na szaro, kod ponizej:

  1. $year = date('Y');
  2. $monthNum = date('n');
  3. $daysOfMonth = date('t');
  4. $dayOfWeek = date('w');
  5. $dayOfMonth = date('j');
  6. $firstDayOfMonth = date('w', mktime(0, 0, 0, $monthNum, 1, $year));
  7.  
  8. if ($dayOfWeek == 0) $dayOfWeek = 7;
  9. if ($firstDayOfMonth == 0) $firstDayOfMonth = 7;
  10.  
  11. switch ($monthNum)
  12. {
  13. case 1: $monthName = "Styczeń"; break;
  14. case 2: $monthName = "Luty"; break;
  15. case 3: $monthName = "Marzec"; break;
  16. case 4: $monthName = "Kwiecień"; break;
  17. case 5: $monthName = "Maj"; break;
  18. case 6: $monthName = "Czerwiec"; break;
  19. case 7: $monthName = "Lipiec"; break;
  20. case 8: $monthName = "Sierpień"; break;
  21. case 9: $monthName = "Wrzesień"; break;
  22. case 10: $monthName = "Październik"; break;
  23. case 11: $monthName = "Listopad"; break;
  24. case 12: $monthName = "Grudzień"; break;
  25. }
  26. ?>
  27.  
  28. <table id="tableSzkolenia">
  29. <tbody>
  30. <tr id="head-row">
  31. <th class="zmiana left" style="height: 50px;"><span class="fa fa-chevron-left icon-sm"></span></th>
  32. <th class="text-center" style="height: 50px; padding: 10px;" colspan="5"><?php echo $monthName." ".$year; ?></th>
  33. <th class="zmiana right" style="height: 50px;"><span class="fa fa-chevron-right icon-sm"></span></th>
  34. </tr>
  35. <tr id="days-row">
  36. <th>Pon</th>
  37. <th>Wt</th>
  38. <th>Śr</th>
  39. <th>Czw</th>
  40. <th>Pt</th>
  41. <th>Sob</th>
  42. <th>Nd</th>
  43. </tr>
  44.  
  45. <?php
  46. $j = $daysOfMonth + $firstDayOfMonth - 1;
  47.  
  48. for ($i = 0; $i < $j; $i++)
  49. {
  50. if ($i < $firstDayOfMonth - 1)
  51. {
  52. echo("<TD bgcolor=\"transparent\"></TD>");
  53. continue;
  54. }
  55.  
  56. if (($i % 7) == 0)
  57. {
  58. echo("</TR><TR>");
  59. }
  60.  
  61. if (($i - $firstDayOfMonth + 2) == $dayOfMonth)
  62. {
  63. $color = "#ffb900";
  64. }
  65. else
  66. {
  67. $color = "#f6f6f6";
  68. }
  69.  
  70. echo "<td class=\"tdSzkolenia\" style=\"background: $color;\">$i</td>";
  71. }
  72. ?>
  73. </tbody>
  74. </table>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Pobierz dzień tygodnia pierwszego dnia miesiąca i uzupełnij daty o dni z poprzedniego miesiąca, od początku tygodnia do tego dnia.
Pobierz ostatni dzień tygodnia danego miesiąca i uzupełnij daty o dni z następnego miesiąca do końca tygodnia.

Możesz też pobrać numery tygodni dla pierwszego i ostatniego dnia miesiąca i wygenerować wszystkie daty dla tych tygodni.

BTW. DateTime Class Twoim przyjacielem ;-)
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: 28.12.2025 - 20:57