Pomoc - Szukaj - U¿ytkownicy - Kalendarz
Pe³na wersja: prawie gotowy kalendarz
Forum PHP.pl > Forum > Przedszkole
kicaj
  1. <style>
  2. td { font-size: 8.5pt; font-family: Verdana }
  3. </style>
  4. <?
  5.  
  6. setlocale( LC_ALL, array( 'pl_PL', 'polish_pol' ) );
  7.  
  8. $dzien=1;
  9.  
  10. echo &#092;"<table width=\"175\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">
  11. <tr>
  12. <td align=&#092;"left\" width=\"25\"><b><<</b></td>
  13. <td align=&#092;"center\" width=\"175\" colspan=\"5\"><font color=\"#000080\"><b>\". date( 'F' ) .\"</b></font></td>
  14. <td align=&#092;"left\" width=\"25\"><b>>></b></td>
  15. </tr>
  16. <tr>
  17. <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Pn</b></td>
  18. <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Wt</b></td>
  19. <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Sr</b></td>
  20. <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Czw</b></td>
  21. <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Pt</b></td>
  22. <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Po</b></td>
  23. <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Ni</b></td>
  24. </tr>&#092;";
  25.  
  26. for($i = 1; $i <= ( date( 't' ) + date( 'w' ) - 1 ); $i++ )
  27. {
  28. if( $i < date( 'w' ) )
  29. {
  30. echo &#092;"<td align=\"right\" width=\"25\">&nbsp;</td>\";
  31. }
  32.  
  33. if( $i >= date( 'w' ) )
  34. {
  35. if ( $i >= date( 'w' ) )
  36. {
  37. if( $dzien == date( 'd' ) )
  38. {
  39. echo &#092;"<td align=\"right\" width=\"25\" bgcolor=\"F3F3F3\"><font color=\"#000080\"><b>\".$dzien.\"&nbsp;</b></font></td>\";
  40.  
  41. $dzien++;
  42. }
  43. elseif( $dzien != date( 'd' ) )
  44. {
  45. echo &#092;"<td align=\"right\" width=\"25\" bgcolor=\"#E7E7EF\">\".$dzien.\"&nbsp;</td>\";
  46.  
  47. $dzien++;
  48. }
  49. }
  50.  
  51. if ( ( $i % 7 ) == 0 )
  52. {
  53. echo &#092;"</tr>\";
  54. }
  55. }
  56. }
  57.  
  58. ?>

W jaki sposob zrobic, zeby ten kalendarz mozna bylo przegladac "w przyszlosci i przeszlosci"? Do funkcji date() trzeba dodac drugi argument `znacznik czasu` ale cos mi nie wychodzi, jak zrobic zeby mogl przegladac np. Kwiecen 2003 lub Styczen 2006?
Kuziu
w $time ustalasz date wedle funkcji mktime()

W linkach dodaj $miesi±c+1 i $miesi±c-1 i bêdzie ¶miga³o ;]

  1. <style>
  2. td { font-size: 8.5pt; font-family: Verdana }
  3. </style>
  4. <?
  5.  
  6. $time = mktime(1,1,1,3,20,2005); // 20 marzec 2005
  7.  
  8. setlocale( LC_ALL, array( 'pl_PL', 'polish_pol' ) );
  9.  
  10. $dzien=1;
  11.  
  12. echo &#092;"<table width=\"175\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">
  13.           <tr>
  14.               <td align=&#092;"left\" width=\"25\"><b><<</b></td>
  15.               <td align=&#092;"center\" width=\"175\" colspan=\"5\"><font color=\"#000080\"><b>\". date( 'F' , $time) .\"</b></font></td>
  16.               <td align=&#092;"left\" width=\"25\"><b>>></b></td>
  17.           </tr>
  18.           <tr>
  19.                 <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Pn</b></td>
  20.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Wt</b></td>
  21.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Sr</b></td>
  22.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Czw</b></td>
  23.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Pt</b></td>
  24.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Po</b></td>
  25.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Ni</b></td>
  26.           </tr>&#092;";
  27.  
  28. for($i = 1; $i <= ( date( 't' , $time) + date( 'w' , $time) - 1 ); $i++ )
  29. {
  30.     if( $i < date( 'w' , $time) )
  31.     {
  32.           echo &#092;"<td align=\"right\" width=\"25\">&nbsp;</td>\";
  33.     }
  34.     
  35.     if( $i >= date( 'w' , $time) )
  36.     {
  37.         if ( $i >= date( 'w' , $time) )
  38.         {
  39.             if( $dzien == date( 'd' , $time) )
  40.             {
  41.                 echo &#092;"<td align=\"right\" width=\"25\" bgcolor=\"F3F3F3\"><font color=\"#000080\"><b>\".$dzien.\"&nbsp;</b></font></td>\";
  42.  
  43.                 $dzien++;
  44.             }
  45.             elseif( $dzien != date( 'd' , $time) )
  46.             {
  47.                 echo &#092;"<td align=\"right\" width=\"25\" bgcolor=\"#E7E7EF\">\".$dzien.\"&nbsp;</td>\";
  48.  
  49.                 $dzien++;
  50.             }
  51.         }
  52.  
  53.         if ( ( $i % 7 ) == 0 )
  54.         {
  55.               echo &#092;"</tr>\";
  56.         }
  57.     }
  58. }
  59.  
  60. ?>
kicaj
No i nie wyswietla prawidlowo, wyswietlilo ze w 2005r. w Marcu, pierwszym dniem miesiac jest poniedzialek, a bedzie wtorek!?
Kuziu
Ta ca³a funkcja jest zrypana ... jak nastawie dzieñ 24 to pokazuje ¿e luty sie zaczyna od czwartku .. a jak 20 to ¿e od poniedzia³ku ... ani to ani to sie nie zgadza ... a w ogóle zmiana daty nie powinna mieæ wp³ywy na przesuwanie sie dni tygodnia.
kicaj
Cytat(Kuziu @ 2005-02-24 01:06:12)
Ta ca³a funkcja jest zrypana ... jak nastawie dzieñ 24 to pokazuje ¿e luty sie zaczyna od czwartku .. a jak 20 to ¿e od poniedzia³ku ... ani to ani to sie nie zgadza ... a w ogóle zmiana daty nie powinna mieæ wp³ywy na przesuwanie sie dni tygodnia.

To co proponujesz?

P.S. Kalendarz napewno dziala w aktualnym miesiacu

UPDATE:
Koncowy efekt (zawiera takze next, prev):
  1. <style>
  2. td { font-size: 8.5pt; font-family: Verdana }
  3. </style>
  4. <?
  5.  
  6. setlocale( LC_ALL, array( 'pl_PL', 'polish_pol' ) );
  7.  
  8. if( isset( $_GET['month'] ) && preg_match( '/[0-9]{2}/', $_GET['month'] ) && $_GET['month'] > 0 && $_GET['month'] < 13 )
  9. {
  10.     $intMonth = $_GET['month'];
  11. }
  12. else
  13. {
  14.     $intMonth = date( 'm' );
  15. }
  16.  
  17. if( isset( $_GET['year'] ) && preg_match( '/[0-9]{4}/', $_GET['year'] ) && $_GET['year'] > 1969 && $_GET['year'] < 2039 )
  18. {
  19.     $intYear = $_GET['year'];
  20. }
  21. else
  22. {
  23.     $intYear = date( 'Y' );
  24. }
  25.  
  26. if( $intMonth == 12 )
  27. {
  28. $intNextMonth = 1;
  29. $intPrevMonth = $intMonth - 1;
  30. }
  31. elseif( $intMonth == 1 )
  32. {
  33. $intNextMonth = $intMonth + 1;
  34. $intPrevMonth = 12;
  35. }
  36. else
  37. {
  38. $intNextMonth = $intMonth + 1;
  39. $intPrevMonth = $intMonth - 1;
  40. }
  41.  
  42. if( $intYear == 2000 && $intMonth == 1 )
  43. {
  44. $intNextYear = $intYear;
  45. $intPrevYear = date( 'Y' );
  46. }
  47. elseif( $intYear == 2010 && $intMonth == 12 )
  48. {
  49. $intNextYear = date( 'Y' );
  50. $intPrevYear = $intYear - 1;
  51. }
  52. elseif( $intMonth > 1 && $intMonth < 12 && $intYear > 2000 && $intYear < 2010 )
  53. {
  54. $intNextYear = $intYear;
  55. $intPrevYear = $intYear;
  56. }
  57. elseif( $intMonth == 12 )
  58. {
  59. $intNextYear = $intYear + 1;
  60. $intPrevYear = $intYear;
  61. }
  62. elseif( $intMonth == 1 )
  63. {
  64. $intNextYear = $intYear;
  65. $intPrevYear = $intYear - 1;
  66. }
  67. else
  68. {
  69. $intNextYear = $intYear;
  70. $intPrevYear = $intYear;
  71. }
  72.  
  73. $intTime = mktime( 0, 0, 0, $intMonth, 1, $intYear );
  74. $intFirstDay = date( 'w', $intTime );
  75. $intDay = 1;
  76.  
  77. echo &#092;"<table width=\"175\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">
  78.           <tr>
  79.               <td align=&#092;"left\" width=\"25\"><a href=\"calendar1.php?month=\". $intPrevMonth .\"&year=\". $intPrevYear .\"\"><b><<</b></a></td>
  80.               <td align=&#092;"center\" width=\"175\" colspan=\"5\"><font color=\"#000080\"><b>\". date( 'F Y', $intTime ) .\"</b></font></td>
  81.               <td align=&#092;"left\" width=\"25\"><a href=\"calendar1.php?month=\". $intNextMonth .\"&year=\". $intNextYear .\"\"><b>>></b></a></td>
  82.           </tr>
  83.           <tr>
  84.                 <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Pn</b></td>
  85.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Wt</b></td>
  86.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Sr</b></td>
  87.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Czw</b></td>
  88.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Pt</b></td>
  89.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Po</b></td>
  90.               <td align=&#092;"center\" width=\"25\" bgcolor=\"#BDBDC6\"><b>Ni</b></td>
  91.           </tr>&#092;";
  92.  
  93. for( $intIter = 1; $intIter <= ( date( 't', $intTime ) + $intFirstDay  - 1 ); $intIter++ )
  94. {
  95.     if( $intIter < $intFirstDay )
  96.     {
  97.           echo &#092;"<td align=\"right\" width=\"25\">&nbsp;</td>\";
  98.     }
  99.  
  100.     if( $intIter >= $intFirstDay   )
  101.     {
  102.         if( $intDay == date( 'd' ) )
  103.             {
  104.                 echo &#092;"<td align=\"right\" width=\"25\" bgcolor=\"F3F3F3\"><font color=\"#000080\"><b>\". $intDay .\"&nbsp;</b></font></td>\";
  105.  
  106.                 $intDay++;
  107.             }
  108.             elseif( $intDay != date( 'd' ) )
  109.             {
  110.                 echo &#092;"<td align=\"right\" width=\"25\" bgcolor=\"#E7E7EF\">\". $intDay .\"&nbsp;</td>\";
  111.  
  112.                 $intDay++;
  113.             }
  114.         }
  115.  
  116.         if ( ( $intIter % 7 ) == 0 )
  117.         {
  118.               echo &#092;"</tr>\";
  119.         }
  120. }
  121.  
  122. ?>


@Kuziu: thx za pomoc smile.gif
alb
... hmm niewiem dlaczego ale ten kalendarzyk nie zmienia miesiecy, to tylko u mnie czy kto¶ te¿ ma ten sam problem ?
kicaj
Minimalne zmiany:
  1. <?
  2. if( isset( $_GET['month'] ) && preg_match( '/[0-9]{1,2}/', $_GET['month'] ) && $_GET['month'] > 0 && $_GET['month'] < 13 )
  3. {
  4. $intMonth = $_GET['month'];
  5. }
  6. else
  7. {
  8. $intMonth = date( 'm' );
  9. }
  10.  
  11. if( isset( $_GET['year'] ) && preg_match( '/[0-9]{4}/', $_GET['year'] ) && $_GET['year'] > 1999 && $_GET['year'] < 2011 )
  12. {
  13. $intYear = $_GET['year'];
  14. }
  15. else
  16. {
  17. $intYear = date( 'Y' );
  18. }
  19.  
  20. if( $intMonth == 12 )
  21. {
  22. $intNextMonth = 1;
  23. $intPrevMonth = $intMonth - 1;
  24. }
  25. elseif( $intMonth == 1 )
  26. {
  27. $intNextMonth = $intMonth + 1;
  28. $intPrevMonth = 12;
  29. }
  30. else
  31. {
  32. $intNextMonth = $intMonth + 1;
  33. $intPrevMonth = $intMonth - 1;
  34. }
  35.  
  36. if( $intYear == 2000 && $intMonth == 1 )
  37. {
  38. $intNextYear = $intYear;
  39. $intPrevYear = date( 'Y' );
  40. }
  41. elseif( $intYear == 2010 && $intMonth == 12 )
  42. {
  43. $intNextYear = date( 'Y' );
  44. $intPrevYear = $intYear - 1;
  45. }
  46. elseif( $intMonth > 1 && $intMonth < 12 && $intYear > 2000 && $intYear < 2010 )
  47. {
  48. $intNextYear = $intYear;
  49. $intPrevYear = $intYear;
  50. }
  51. elseif( $intMonth == 12 )
  52. {
  53. $intNextYear = $intYear + 1;
  54. $intPrevYear = $intYear;
  55. }
  56. elseif( $intMonth == 1 )
  57. {
  58. $intNextYear = $intYear;
  59. $intPrevYear = $intYear - 1;
  60. }
  61. else
  62. {
  63. $intNextYear = $intYear;
  64. $intPrevYear = $intYear;
  65. }
  66.  
  67. $intTime = mktime( 0, 0, 0, $intMonth, 1, $intYear );
  68. $strFirstDay = date( 'D', $intTime );
  69. $intDay = 1;
  70.  
  71. echo &#092;"<table width=\"189\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\" align=\"center\">
  72. <tr>
  73. <td align=&#092;"left\" width=\"27\"><a href=\"calendar.php?month=\". $intPrevMonth .\"&year=\". $intPrevYear .\"\"><b><<</b></a></td>
  74. <td align=&#092;"center\" width=\"135\" colspan=\"5\"><font color=\"#000080\"><b>\". strftime( '%B', $intTime ) .\" \". date( 'Y', $intTime ) .\"</b></font></td>
  75. <td align=&#092;"left\" width=\"27\"><a href=\"calendar.php?month=\". $intNextMonth .\"&year=\". $intNextYear .\"\"><b>>></b></a></td>
  76. </tr>
  77. <tr>
  78. <td align=&#092;"center\" width=\"27\" bgcolor=\"#BDBDC6\"><b>Pn</b></td>
  79. <td align=&#092;"center\" width=\"27\" bgcolor=\"#BDBDC6\"><b>Wt</b></td>
  80. <td align=&#092;"center\" width=\"27\" bgcolor=\"#BDBDC6\"><b>Sr</b></td>
  81. <td align=&#092;"center\" width=\"27\" bgcolor=\"#BDBDC6\"><b>Czw</b></td>
  82. <td align=&#092;"center\" width=\"27\" bgcolor=\"#BDBDC6\"><b>Pt</b></td>
  83. <td align=&#092;"center\" width=\"27\" bgcolor=\"#BDBDC6\"><b>Po</b></td>
  84. <td align=&#092;"center\" width=\"27\" bgcolor=\"#BDBDC6\"><b>Ni</b></td>
  85. </tr>&#092;";
  86.  
  87. if( $intMonth < 10 )
  88. {
  89. $intMonth = &#092;"0\". $intMonth;
  90. }
  91.  
  92. if( $strFirstDay == 'Mon' )
  93. {
  94. $intFirstDay = 1;
  95. }
  96. elseif( $strFirstDay == 'Tue' )
  97. {
  98. $intFirstDay = 2;
  99. }
  100. elseif( $strFirstDay == 'Wed' )
  101. {
  102. $intFirstDay = 3;
  103. }
  104. elseif( $strFirstDay == 'Thu' )
  105. {
  106. $intFirstDay = 4;
  107. }
  108. elseif( $strFirstDay == 'Fri' )
  109. {
  110. $intFirstDay = 5;
  111. }
  112. elseif( $strFirstDay == 'Sat' )
  113. {
  114. $intFirstDay = 6;
  115. }
  116. elseif( $strFirstDay == 'Sun' )
  117. {
  118. $intFirstDay = 7;
  119. }
  120.  
  121. for( $intIter = 1; $intIter <= ( date( 't', $intTime ) + $intFirstDay - 1 ); $intIter++ )
  122. {
  123. if( $intIter < $intFirstDay )
  124. {
  125. echo &#092;"<td align=\"right\" width=\"27\">&nbsp;</td>\";
  126. }
  127.  
  128. if( $intIter >= $intFirstDay )
  129. {
  130. if( $intDay == date( 'd' ) )
  131. {
  132. echo &#092;"<td align=\"right\" width=\"27\" \";
  133.  
  134. if( $intMonth == date( 'm' ) && $intYear == date( 'Y' ) )
  135. {
  136. echo &#092;"bgcolor=\"F3F3F3\"><a title=\"Dzisiejszy dzieñ\"><font color=\"#000080\"><b>\". $intDay .\"&nbsp;&nbsp;</b></font></a>\";
  137. }
  138. else
  139. {
  140. echo &#092;"bgcolor=\"#E7E7EF\">\". $intDay .\"&nbsp;&nbsp;\";
  141. }
  142.  
  143. echo &#092;"</td>\";
  144.  
  145. $intDay++;
  146. }
  147. elseif( $intDay != date( 'd' ) )
  148. {
  149. echo &#092;"<td align=\"right\" width=\"27\" bgcolor=\"#E7E7EF\">\". $intDay .\"&nbsp;&nbsp;</td>\";
  150.  
  151. $intDay++;
  152.  }
  153.  }
  154.  
  155. if ( ( $intIter % 7 ) == 0 )
  156. {
  157. echo &#092;"</tr>\";
  158. }
  159. }
  160.  
  161. ?>
alb
hmm teraz piêknie dzia³a smile.gif

... ja bym siê pokusi³ o dodanie jeszcze na pocz±tku
  1. <?php
  2.  
  3. $arrLocale = array( &#092;"pl_PL\", \"polish_pol\" );
  4. setlocale( LC_ALL, $arrLocale );
  5.  
  6. ?>


... ale to ju¿ wg uznania smile.gif
xmarko
Fajny skrypt, przy wywo³ywaniu przekj¶cia na inny miesi±c mam takie rezultaty :
Kod
Warning: preg_match: internal pcre_fullinfo() error -3 in /var/www/html/pr/calendar.php on line 4

Warning: preg_match: internal pcre_fullinfo() error -3 in /var/www/html/pr/calendar.php on line 13

A oto te linijki :
  1. <?php
  2. $arrLocale = array( &#092;"pl_PL\", \"polish_pol\" );
  3. setlocale( LC_ALL, $arrLocale );
  4. if( isset( $_GET['month'] ) && preg_match( '/[0-9]{1,2}/', $_GET['month'] ) && $_GET['month'] > 0 && $_GET['month'] < 13 )
  5. {
  6. $intMonth = $_GET['month'];
  7. }
  8. else
  9. {
  10. $intMonth = date( 'm' );
  11. }
  12.  
  13. if( isset( $_GET['year'] ) && preg_match( '/[0-9]{4}/', $_GET['year'] ) && $_GET['year'] > 1999 && $_GET['year'] < 2011 )
  14. {
  15. $intYear = $_GET['year'];
  16. }
  17. else
  18. {
  19. $intYear = date( 'Y' );
  20. }
  21. // i tu ju¿ dalsza czê¶æ skryptu
  22.  
  23. ?>
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.