台灣科技大學 ![]() | 【求助】PHP月曆製作 小弟想要用PHP寫一個簡單的部落格來玩玩,但是月曆的部份有點卡住說... 月曆只能顯示第一個禮拜的天數...其他禮拜的都跑不出來...是不是可以請各位網友幫我看一下屍體!? 語法: <?php function calendar($setdate) { // 設定星期參數 $week_day = array("日","一","二","三","四","五","六"); $date_count = 1; // 取得年月日參數 if($setdate==NULL) { $current_yr = date("Y", time()); $current_mo = date("m", time()); $current_da = date("j", time()); } else { $current_yr = (int)($setdate / 100); if(($setdate % 100) > 12) { $current_mo = ($setdate % 100) - 12; } else if(($setdate % 100) < 1) { $current_mo = ($setdate % 100) + 12; } else { $current_mo = ($setdate % 100); } } // 取得月份相關參數 $start_date = (intval((date("U", mktime(0,0,0,$current_mo,1,$current_yr)) / 86400))); $start_week = date("w", mktime(0,0,0,$current_mo,1,$current_yr)); $today_date = (intval((date("U", mktime(0,0,0,$current_mo,$current_da,$current_yr)) / 86400))); $ended_date = (intval((date("U", mktime(0,0,0,$current_mo+1,0,$current_yr)) / 86400))); $ended_date = (strftime("%d", $ended_date)); // 輸出月曆 echo "<table width=\"150\">\n"; echo " <tr>\n"; // 先前一月 echo " <td><center><a href=\"?setdate="; if($current_mo == 1) { $ym = ($current_yr-1)*100 + 12; echo "$ym"; } else { $ym = $current_yr*100+$current_mo-1; echo "$ym"; } echo "\"><strong><<</strong></a></td>\n"; // 目前月份 $ym = ($current_yr*100+$current_mo); echo " <td><center><a href=\"?setdate=$ym\"><strong>"; switch($current_mo) { case 1 : echo "$current_yr"." Jan"; break; case 2 : echo "$current_yr"." Feb"; break; case 3 : echo "$current_yr"." Mar"; break; case 4 : echo "$current_yr"." Apr"; break; case 5 : echo "$current_yr"." May"; break; case 6 : echo "$current_yr"." Jun"; break; case 7 : echo "$current_yr"." Jul"; break; case 8 : echo "$current_yr"." Aug"; break; case 9 : echo "$current_yr"." Sep"; break; case 10: echo "$current_yr"." Oct"; break; case 11: echo "$current_yr"." Nov"; break; default: echo "$current_yr"." Dec"; } echo "</strong></a></td>\n"; // 之後一月 echo " <td><center><a href=\"?setdate="; if($current_mo == 12) { $ym = ($current_yr+1)*100 + 1; echo "$ym"; } else { $ym = $current_yr*100+$current_mo+1; echo "$ym"; } echo "\"><strong>>></strong></a></td>\n"; echo " </td>\n"; echo "</table>\n"; echo "<table width=\"170\">\n"; echo " <tr>\n"; // 輸出星期序列 for($a=0;$a<7;$a++){ if($a==0 || $a==6) { echo "<td><center><font color=\"FF0000\"><strong>$week_day[$a]</strong></font></center></td>\n"; } else { echo "<td><center><strong>$week_day[$a]</strong></center></td>\n"; } } echo "</tr>\n"; // 輸出月曆部份 for($i=1;$i<=6;$i++){ if($date_count > $ended_date) { $date_count = 1; break; } echo " <tr align=\"center\" valign=\"middle\">"; for($row=1;$row<8;$row++){ if($row<=$start_week) { echo " <td> </td>"; } else { if($date_count==$current_date) { echo " <td bgcolor=\"#DBBE94\"><strong>$date_count</strong></td>"; } else { echo " <td>$date_count</td>"; } $date_count++; } } echo "</tr>"; } echo "</table>"; } ?> |
回覆 |
|
XML | RSS 2.0 | RSS |
本論壇所有文章僅代表留言者個人意見,並不代表本站之立場,討論區以「即時留言」方式運作,故無法完全監察所有即時留言,若您發現文章可能有異議,請 email :[email protected] 處理。