Witam. To mój pierwszy post i dopiero zaczynam w PHP wiec proszę o wyrozumiałość smile.gif Problem polega na tym ze zrobiłem prosty kalendarz w widoku miesięcznym i z przechodzeniem między miesiącami. Niby wszystko gra lecz jest jeden problem. Jeśli pierwszy dzień miesiąca to niedziela wtedy przeskakuje i staje się poniedziałkiem. Oto kod:
  1. <?php
  2.  
  3. function akt_data($mies,$rok) {
  4.  
  5. }
  6.  
  7. function dni_mies($mies,$rok) {
  8.  
  9. $dni = 31;
  10. while (!checkdate($mies, $dni, $rok)) $dni--;
  11.  
  12.  
  13. return $dni;
  14. }
  15.  
  16.  
  17. function dzien_tyg_nr($mies,$rok) {
  18.  
  19. $dzien = date("w", mktime(0,0,0,$mies,1,$rok));
  20.  
  21.  
  22. return $dzien;
  23. }
  24.  
  25. function dzien_tyg($nr) {
  26.  
  27. $dzien = array(0 => "Poniedziałek", "Wtorek", "Środa", "Czwartek", "Piątek", "Sobota", "Niedziela");
  28.  
  29. return $dzien[$nr];
  30. }
  31.  
  32.  
  33. function miesiac_pl($mies) {
  34.  
  35. $mies_pl = array(1=>"Stycznia", "Lutego", "Marca", "Kwietnia", "Maja", "Czerwieca", "Lipieca", "Sierpnia", "Wrzesnia", "Pazdziernika", "Listopada", "Grudnia");
  36.  
  37. return $mies_pl[$mies];
  38. }
  39.  
  40. if ($_GET['r'] == NULL)
  41. {
  42. $rok = date("Y");
  43. } else {
  44. $rok = $_GET['r'];
  45. }
  46.  
  47. if ($_GET['m'] == NULL)
  48. {
  49. $miesc = date("n");
  50. } else {
  51. $miesc = $_GET['m'];
  52. }
  53.  
  54. if ($_GET['d'] == NULL)
  55. {
  56. $dzien = date("j");
  57. } else {
  58. $dzien = $_GET['d'];
  59. }
  60. ?>
  61.  
  62. <html>
  63. <head>
  64. <title>Kalendarz</title>
  65.  
  66. <meta http-equiv="content-type" content="text/xml; charset=iso-8859-2" />
  67. <meta http-equiv="content-language" content="pl" />
  68.  
  69. <style type="text/css">
  70. #kalendarz {width: 250px;}
  71. #kalendarz p {text-align: right;}
  72. #kalendarz li {display: inline; padding:2px 5px; }
  73. #kalendarz .akt {color: #990000; font-weight: bold;}
  74. #kalendarz .hidden {visibility: hidden;}
  75. </style>
  76. </head>
  77. <body>
  78. <a href="kalendarztest.php?r=<?php if ($miesc == 1) { echo $rok - 1;} else { echo $rok; }?>&m=<?php if ($miesc == 1) { echo 12; } else { echo $miesc -1;}?>&d=nn">Poprzedni miesiac</a>
  79. <a href="kalendarztest.php">Aktualny miesiac</a>
  80. <a href="kalendarztest.php?r=<?php if ($miesc == 12) { echo $rok + 1;} else { echo $rok; }?>&m=<?php if ($miesc == 12) { echo 1;} else { echo $miesc + 1;} ?>&d=nn">Nastepny miesiac</a>
  81. <div id="kalendarz">
  82. <?php
  83.  
  84. //echo '<p>'.dzien_tyg(date("w")).', '.$dzien.' '.miesiac_pl($miesc).' '.$rok.'</p>';
  85. ?>
  86. <ul>
  87.  
  88. <li>Pn</li>
  89. <li>Wt</li>
  90. <li>Sr</li>
  91. <li>Cz</li>
  92. <li>Pt</li>
  93. <li>Sb</li>
  94. <li>N</li>
  95.  
  96. </ul>
  97.  
  98. <ul>
  99.  
  100.  
  101. <?php
  102.  
  103. for($i=1;$i<dzien_tyg_nr($miesc,$rok);$i++)
  104. echo '<li class="hidden">00</li> ';
  105.  
  106. for($i=1;$i<dni_mies($miesc,$rok) +1;$i++) {
  107. if ($i<10) $i = '0'.$i;
  108. if ($i == $dzien AND $_GET['d'] == NULL) echo '<li class="akt">'.$i.'</li> ';
  109. else echo '<li>'.$i.'</li> ';
  110. }
  111.  
  112. ?>
  113. </ul>
  114. <div>
  115.  
  116. </body>
  117. </html>


Edit: Temat do zamknięcia - problem rozwiązany smile.gif