Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Kalendarz
Forum PHP.pl > Forum > PHP
pececik
Witam.
Mój kalendarz źle wyświetla datę.
Zamiast na rok 2009, wyświetla na 2010.
Możecie mi pomóc? biggrin.gif
  1. <?php
  2.  
  3. $booked_events = array();
  4. for ( $i=1;$i<=31;$i++ )
  5. {
  6. $booked_events[$i] = 0;
  7. }
  8.  
  9. if ($cal_show_reserved)
  10. {
  11.  
  12. $red_data = array();
  13. $calendar_list->get_entry(0,$red_data);
  14.  
  15. do {
  16. if ( (gmdate( "m", $red_data["event_start"] ) == $cal_month) &&
  17. (gmdate( "Y", $red_data["event_start"] ) == $cal_year))
  18. {
  19. $xday = gmdate( "j", $red_data["event_start"] );
  20. $booked_events[ $xday ]++;
  21. }
  22.  
  23. $calendar_list->get_next_entry( $red_data );
  24. } while (!$calendar_list->eol());
  25.  
  26. }
  27.  
  28. echo <<<CALENDAR_HEAD
  29.  
  30.  
  31. <!-- THE CALENDAR CONTROL (START) -->
  32.  
  33. <table border="0" cellspacing="0" cellpadding="0" class="headline">
  34. <tr>
  35.   <td align="center"><a href="$PHP_SELF?Y=$cal_prev_year&m=$cal_prev_month&d=$cal_day&cal_id=$cal_id&language=$language">&lt;</a></td>
  36.   <td align="center"><b>$_month_name[$cal_month] - $cal_year</b></td>
  37.   <td align="center"><a href="$PHP_SELF?Y=$cal_next_year&m=$cal_next_month&d=$cal_day&cal_id=$cal_id&language=$language">&gt;</a></td>
  38. </tr>
  39. </table>
  40.  
  41. <table width="30%" border="0" class="overview">
  42. <tr>
  43. <td class="dayname"><u>$_mo</u></td>
  44. <td class="dayname"><u>$_tu</u></td>
  45. <td class="dayname"><u>$_we</u></td>
  46. <td class="dayname"><u>$_th</u></td>
  47. <td class="dayname"><u>$_fr</u></td>
  48. <td class="dayname"><u>$_sa</u></td>
  49. <td class="dayname"><u>$_su</u></td>
  50. </tr>
  51.  
  52. CALENDAR_HEAD;
  53.  
  54. if ( ( $cal_year == $now_year ) && ( $cal_month == $now_month ) )
  55. {
  56. $today_day = $now_day;
  57. } else $today_day = 0;
  58.  
  59. $days_last_month = num_days( $cal_prev_year, $cal_prev_month );
  60. $days_this_month = num_days( $cal_year, $cal_month );
  61.  
  62. // what's the weekday of the 1st day of this month?
  63. $first_day_pos = gmdate( "w", gmmktime( 0,0,0,$cal_month,1,$cal_year, $is_dst) );
  64. if ( $first_day_pos == 0 ) $first_day_pos = 7; // convert to Mo=1 to Su=7
  65.  
  66. $day_num = $days_last_month - ($first_day_pos-2); $class=' class="last_month"';
  67.  
  68. for ( $y=1; $y<=6; $y++ )
  69. {
  70. echo " <tr>\n";
  71. for ( $x=1; $x<=7; $x++ )
  72. {
  73. if ( ($y==1) && ($x==$first_day_pos) )
  74. {
  75. $day_num = 1; $class="";
  76. }
  77.  
  78. if ( ($y >1) && ($day_num==$days_this_month+1) )
  79. {
  80. $day_num = 1; $class=' class="next_month"';
  81. }
  82.  
  83. if ( ($class=="") && ($day_num == $today_day) )
  84. {
  85. $id=' id="today"';
  86. } else $id="";
  87.  
  88. if ( ( $id!=' id="today"') && ($class=="") && ($day_num == $cal_day ) )
  89. {
  90. $id=' id="selected"';
  91. }
  92.  
  93. if ( $class != "" )
  94. { $ap1 = ""; $ap2 = ""; }
  95. else
  96. { $ap1 = '<a href="'.$PHP_SELF."?Y=$cal_year&m=$cal_month&d=$day_num&cal_id=$cal_id&language=$language".'">'; $ap2 = '</a>'; }
  97.  
  98. if (($booked_events[$day_num] != 0) && $class=="")
  99. echo ' <td'.$class.$id.'>'.$ap1.'<span class="reserved">'.$day_num.'</span>'.$ap2.'</td>'."\n";
  100. else
  101. echo ' <td'.$class.$id.'>'.$ap1.$day_num.$ap2.'</td>'."\n";
  102. $day_num++;
  103. }
  104. echo " </tr>\n";
  105. }
  106.  
  107. if ($cal_today_selector)
  108. $ts = $_today; else $ts = "";
  109.  
  110. echo <<<CALENDAR_TAIL
  111.   </table>
  112. <br /><br />
  113.  
  114. <!-- THE CALENDAR CONTROL (END) -->
  115. CALENDAR_TAIL;
  116.  
  117. ?>
Dumdas
Nie analizując kodu:

I na 100% wyświetli 2009 ;P
Najprostsze rozwiązanie zawsze jest najlepsze.
pececik
Ale to wtedy wyświetli tekst "2008".
Ale ja chcę, aby skrypt wyświetlał dni z roku 2009, bo są na 2010 ;/
Dumdas
Jak dasz
to wyświetli 2009... innej opcji nie ma...
bim2
Sprawdź jaka jest ustawiona data na serwerze, bo mogli coś pomieszać 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.