この前のテストでやったカレンダーのソースをそのまま掲載します。
参考サイト:
Syntax Highlighter導入
Blogger でコードをシンタックスハイライトする -net3-
コードの変換
コードをハイライトする「Blogger Syntax Highlighter」ウィジェット -クリボウの Blogger Tips-
実はこのソース、バグがあります。
月初めの1日が日曜日だとtrが余計に出力されるってバグです。
読まれる方は気をつけて読んでください。
余裕があったらそのうち修正版を掲載します。
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <style type="text/css"> .Sun{ color: red; } .Mon{ color: #000; } .Tue{ color: #000; } .Wed{ color: #000; } .Thu{ color: #000; } .Fri{ color: #000; } .Sat{ color: #00F; } </style> </head> <body> <?php if($_GET['year'] != ""){ $year = $_GET['year']; } if($_GET['month'] != ""){ $month = $_GET['month']; } $calender_html = calender($year,$month); print $calender_html; ?> </body> </html> <?php function calender($year = "" , $month = ""){ //初期化 if($year == ""){ $year = date('Y'); } if($month == ""){ $month = date('m'); } $html = ""; if($month == 12){ $next_year = $year+1; $next_month = 1; $prov_year = $year; $prov_month = 11; }elseif($month == 1){ $next_year = $year; $next_month = 2; $prov_year = $year-1; $prov_month = 12; }else{ $next_year = $year; $next_month = $month+1; $prov_year = $year; $prov_month = $month-1; } //月末日 $end_day = date('d',mktime(0,0,0,$month+1,0,$year)); //月始まりの曜日 $start_week = date('w',mktime(0,0,0,$month,1,$year)); //月末曜日 $end_week = date('w',mktime(0,0,0,$month,$end_day,$year)); //表示 $html .= "<table border='1' class='calender'>\n"; $html .= " <caption>"; $html .= "<a href='?year={$prov_year}&month={$prov_month}'><<</a>"; $html .= "{$year}年{$month}月\n"; $html .= "<a href='?year={$next_year}&month={$next_month}'>>></a>"; $html .= " </caption>\n"; $html .= " <tr>\n"; $html .= " <th class='Sun'>日</th>\n"; $html .= " <th>月</th>\n"; $html .= " <th>火</th>\n"; $html .= " <th>水</th>\n"; $html .= " <th>木</th>\n"; $html .= " <th>金</th>\n"; $html .= " <th class='Sat'>土</th>\n"; $html .= " </tr>\n"; $html .= "\n"; //末日までループ for($i = 1 ; $i <= $end_day;$i++ ){ //表示する日の曜日を取得 $view_week = date('w',mktime(0,0,0,$month,$i,$year)); $view_week_str = date('D',mktime(0,0,0,$month,$i,$year)); //最初の日は空白を出力 if($i == 1){ $html .= "<tr>\n"; for($ii = 0;$ii < $view_week;$ii++){ $html .= "<td><br></td>\n"; } } //日曜ならtr開始 if($view_week == 0){ $html .= "<tr>\n"; } //日付出力 $html .= "<td class='".$view_week_str."'>".$i."</td>\n"; //土曜ならtr〆 if($view_week == 6){ $html .= "</tr>\n"; } if($i == $end_day){ for($ii = $view_week;$ii < 6 ;$ii++){ $html .= "<td><br></td>\n"; } $html .= "</tr>\n"; } } $html .= "</table>\n"; return $html; } ?>
0 件のコメント:
コメントを投稿