PHPでカレンダー機能を作成。

PHPを使えば日付の所に予定を書き込んだり、

用事のある日を色付けしたりも出来る。


まずは簡単にカレンダー機能のみを作成。

以下のコードを打ち込む。


<?php

//変数の受取
$year = $_REQUEST['year'];
$month = $_REQUEST['month'];

//最初の実行する時はdate関数から年を設定
if($year == null){
$year = date(Y);
}
//最初の実行する時はdate関数から月を設定
if($month == null){
$month = date(n);
}

//先月の場合
if($month==1){
$year_b = $year-1;
$month_b = 12;
}else{
$year_b = $year;
$month_b = $month-1;
}

//来月の場合
if($month==12){
$year_a = $year+1;
$month_a = 1;
}else{
$year_a = $year;
$month_a = $month+1;
}

//今日の日付を保管
$today = date(Ynj);

//先月や次月へ移動する為の部分
$body .= "<center><table><tbody><tr><td>
<a class=\"month_b\" href=\"test.php?year=$year_b&month=$month_b\"><<" .$month_b ."月</a></td>
<td class=\"daimei\"><font class=\"title\">$title" ." </font><font class=\"year\">$year" ."年</font><font class=\"month\">$month" ."月</font></td>
<td><a class=\"month_a\" href=\"test.php?year=$year_a&month=$month_a\">" .$month_a ."月>></a></td>
</td></tr></tbody></table>";


//曜日の表示
$body .="<table border=\"1\">
<tbody>
<tr><td width=\"110\" bgcolor='#ff0000' align='center' class=\"sunday\"><font size='3'><b>日</b></font></td>
<td width=\"110\" height=\"10\" bgcolor='#ffaaaa' align='center' class=\"other\"><font size='3'><b>月</b></font></td>
<td width=\"110\" height=\"10\" bgcolor='#ffaaaa' align='center' class=\"other\"><font size='3'><b>火</b></font></td>
<td width=\"110\" height=\"10\" bgcolor='#ffaaaa' align='center' class=\"other\"><font size='3'><b>水</b></font></td>
<td width=\"110\" height=\"10\" bgcolor='#ffaaaa' align='center' class=\"other\"><font size='3'><b>木</b></font></td>
<td width=\"110\" height=\"10\" bgcolor='#ffaaaa' align='center' class=\"other\"><font size='3'><b>金</b></font></td>
<td width=\"110\" height=\"10\" bgcolor='#0000ff' align='center' class=\"sutday\"><font size='3'><b>土</b></font></td></tr>
<tr>";

$wtop = date(w,mktime(0,0,0,$month,1,$year));

for($dot1 = 0 ; $dot1 < $wtop ; $dot1++){
$body .= "<td align='center'>・</td>\n";
}

for( $day = 1 ; checkdate( $month, $day, $year ) ; $day++ ){
$ttl_ninzu = 0;
$ttl_kashi = 0;

if(($day+$wtop)%7 == 1){ //日曜日
$body .= "<tr><td valign='top' align=\"left\" height=\"60\">
<table border=\"0\">
<tbody>
<td rowspan=\"2\"><font color=\"#ff97cb\">$day</font></td>
</tbody>
</table>";

}else if(($day+$wtop)%7 == 0){ //土曜日
$body .= "<td valign='top' align=\"left\" height=\"60\">
<table border=\"0\">
<tbody>
<td rowspan=\"2\"><font color=\"#99a3f9\">$day</font></td>
</tbody>
</table>";

}else{ //その他
$body .= "<td valign='top' align=\"left\" height=\"60\">
<table border=\"0\">
<tbody>
<td rowspan=\"2\">$day</td>
</tbody>
</table>";
}
}

$wend = date(w,mktime(0,0,0,$month,$day,$year));

if($wend !=0){
for($dot2 =0 ; $dot2 < 7-$wend ;$dot2++){
$body .= "<td align='center'>・</td>";
}
}
$body .= "</td></tr></table>";


//HTMLを組み立てる
print "<html><head><title>カレンダー</title></head><body>";
print $body;
print "</body></html>";

?>

たとえば、リンク こういったリンクにマウスをロールオーバーさせた時にリンクであるという事を


わかりやすくする為に、下記の方法でリンクテキストを動かす事が出来る。


a:hover{
position: relative;
top:1px;
left:1px;
}