Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Kalendarz
Forum PHP.pl > Forum > Przedszkole
Glarden
Cześć. Napisałem sobie skrypt kalendarzyka, który wygląda tak:
  1. <?php
  2. if (!isset ($_GET['m'])) {
  3. $m = date("m");
  4. }
  5. else {
  6. $m = $_GET['m'];
  7. }
  8. $y = date("Y");
  9. $p = date("L");
  10. switch ($m) {
  11. case 01 : $dni_m = 31;
  12. case 03 : $dni_m = 31;
  13. case 04 : $dni_m = 30;
  14. case 05 : $dni_m = 31;
  15. case 06 : $dni_m = 30;
  16. case 07 : $dni_m = 31;
  17. case 08 : $dni_m = 31;
  18. case 09 : $dni_m = 30;
  19. case 10 : $dni_m = 31;
  20. case 11 : $dni_m = 30;
  21. case 12 : $dni_m = 31;
  22. }
  23. if ($m == 2) {
  24. if ($p == 1) {
  25. $dni_m = 29;
  26. }
  27. else {
  28. $dni_m = 28;
  29. }
  30. }
  31. ?>
  32. <meta http-equiv="content-type" content="text/html; charset=windows-1250"/>
  33. <style>
  34. * {
  35. font: 12px arial;
  36. }
  37. li {
  38. display: inline; 
  39. list-style: none;
  40. padding: 2px 5px;
  41. }
  42. #nie {
  43. visibility: hidden;
  44. }
  45. a {
  46. color: green;
  47. text-decoration: none;
  48. }
  49. a:hover {
  50. text-decoration: underline;
  51. }
  52. </style>
  53. <ul><li><b>Pn</b></li><li><b>Wt</b></li><li><b>Śr</b></li><li><b>Cz</b></li><li><b>Pt</b></li><b>&nbsp &nbsp Sb</b> </li><li><b>N</b></li></ul>
  54. <ul>
  55. <?php
  56. $pd = date("w", mktime(0,0,0,$m,1,$y));
  57. $dd = date("d");
  58. $komorek = 1;
  59. for($i=0;$i<$pd-1;$i++) {
  60. echo ("<li id='nie'>00</li>");
  61. $komorek++;
  62. }
  63. for ($i=1;$i<$dni_m+1;$i++) {
  64. if ($i<10) $i = '0'.$i;
  65. if ($komorek>7) {
  66. echo ("<br><li>$i</li>");
  67. $komorek = 1;
  68. }
  69. else {
  70. if ($i==$dd) {
  71. echo ("<li><span style='color:blue; font-weight: bold;'>$i</span></li>");
  72. }
  73. else {
  74. echo ("<li>$i</li>");
  75. }
  76. }
  77. $komorek++;
  78. }
  79. ?>
  80. </ul>
  81. <?php
  82. $m = str_replace("0", "", "$m");
  83. if ($m==1) {
  84. $w = 12;
  85. }
  86. else {
  87. $w = $m-1;
  88. }
  89. if ($w<10) $w = "0".$w;
  90. echo ("<a href=kalendarz.php?m=$w>Wcześniej</a> &nbsp &nbsp &nbsp &nbsp &nbsp");
  91. if ($m==12) {
  92. $p = 1;
  93. }
  94. else {
  95. $p = $m+1;
  96. }
  97. if ($p<10) $p = "0".$p;
  98. echo ("<a href=kalendarz.php?m=$p>Później</a>");
  99. ?>


Wszystkie dni, z wyjątkiem lutego mają 31 dni, a sierpień i wrzesień wcale nie działają. Możecie to zobaczyć tu: http://hejmejoza.za.pl/kalendarz.php
O co chodzi?
dziurson
może dodać break; na końcu każdego case - to powinno pomóc na liczbę dni
Glarden
Heheh, masz rację. Ale jestem tępy.
Ale pozostaje jeszcze problem sierpnia i września...
dziurson
A oto i Twój nowy działający kod smile.gif

  1. <?php
  2. if (!isset ($_GET['m'])) {
  3. $m = date("m");
  4. } else {
  5. $m = $_GET['m'];
  6. }
  7. $y = date("Y");
  8. $p = date("L");
  9.  
  10. switch ($m) {
  11. case "01" : $dni_m = 31; break;
  12. case "03" : $dni_m = 31; break;
  13. case "04" : $dni_m = 30; break;
  14. case "05" : $dni_m = 31; break;
  15. case "06" : $dni_m = 30; break;
  16. case "07" : $dni_m = 31; break;
  17. case "08" : $dni_m = 31; break;
  18. case "09" : $dni_m = 30; break;
  19. case "10" : $dni_m = 31; break;
  20. case "11" : $dni_m = 30; break;
  21. case "12" : $dni_m = 31; break;
  22. }
  23. if ($m == 2) {
  24. if ($p == 1) {
  25. $dni_m = 29;
  26. }
  27. else {
  28. $dni_m = 28;
  29. }
  30. }
  31. ?>
  32. <meta http-equiv="content-type" content="text/html; charset=windows-1250"/>
  33. <style>
  34. * {
  35. font: 12px arial;
  36. }
  37. li {
  38. display: inline; 
  39. list-style: none;
  40. padding: 2px 5px;
  41. }
  42. #nie {
  43. visibility: hidden;
  44. }
  45. a {
  46. color: green;
  47. text-decoration: none;
  48. }
  49. a:hover {
  50. text-decoration: underline;
  51. }
  52. </style>
  53. <ul><li><b>Pn</b></li><li><b>Wt</b></li><li><b>Śr</b></li><li><b>Cz</b></li><li><b>Pt</b></li><b>&nbsp &nbsp Sb</b> </li><li><b>N</b></li></ul>
  54. <ul>
  55. <?php
  56. $pd = date("w", mktime(0,0,0,$m,1,$y));
  57. $dd = date("d");
  58. $komorek = 1;
  59. for($i=0;$i<$pd-1;$i++) {
  60. echo "<li id='nie'>00</li>";
  61. $komorek++;
  62. }
  63.  
  64. for ($i=1;$i<$dni_m+1;$i++) {
  65. if ($i<10) $i = '0'.$i;
  66. if ($komorek>7) {
  67. echo "<br><li>".$i."</li>";
  68. $komorek = 1;
  69. }
  70. else {
  71. if ($i==$dd) {
  72. echo "<li><span style='color:blue; font-weight: bold;'>".$i."</span></li>";
  73. }
  74. else {
  75. echo "<li>".$i."</li>";
  76. }
  77. }
  78. $komorek++;
  79. }
  80. ?>
  81. </ul>
  82. <?php
  83. //$m = str_replace("0", "", $m);
  84. if ($m==01) {
  85. $w = 12;
  86. }
  87. else {
  88. $w = $m-1;
  89. }
  90. if ($w<10) $w = "0".$w;
  91. echo ("<a href=kalendarz.php?m=$w>Wcześniej</a> &nbsp &nbsp &nbsp &nbsp &nbsp");
  92. if ($m==12) {
  93. $p = 1;
  94. }
  95. else {
  96. $p = $m+1;
  97. }
  98. if ($p<10) $p = "0".$p;
  99. echo ("<a href=kalendarz.php?m=$p>Później</a>");
  100.  
  101. ?>
Glarden
Dobry jesteś. Dziękować.
dziurson
No nie łatwo było znaleźć błąd ale nie ma rzeczy niemożliwych smile.gif
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.