この前のテストでやったカレンダーのソースをそのまま掲載します。
参考サイト:
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 件のコメント:
コメントを投稿