PHPで簡易なカレンダーを作成してみました。テーブルタグでHTML出力します。
<?php
$yy = date("Y"); //年
$mm = date("m"); //月
//月末
$last_day = date('j', mktime(0, 0, 0, $mm + 1, 0, $yy));
//1日の曜日(0:日 1:月・・)
$first_day_week = date('w', mktime(0, 0, 0, $mm, 1, $yy));
//--------------
//カレンダー配列
//--------------
$cal = array();
$k = 0;
for($i=1; $i<=$last_day; $i++) {
if($i==1){
for($j=0 ;$j<$first_day_week; $j++){
$cal[$k] ="";
$k++;
}
}
$cal[$k] = $i;
$k++;
}
for($i=0; $i< ($k % 7) ;$i++){
$cal[$k] ="";
$k++;
}
//--------------
//カレンダー出力
//--------------
echo "<table>\n";
echo "<tr>\n";
echo "<th>日</th><th>月</th><th>火</th><th>水</th><th>木</th><th>金</th><th>土</th>\n";
echo "</tr>\n";
$i=0;
foreach ($cal as $key => $value){
if($i % 7 ==0){
echo "<tr>\n";
}
echo "<td>".$value."</td>";
$i++;
if($i % 7 ==0){
echo "</tr>\n";
}
}
echo "</table>\n";
・PHP: date - Manual
・PHP: mktime - Manual
・PHP: 代数演算子 - Manual
一度$calという配列に格納してから、HTML出力しています。
剰余(%)演算子をつかって、7で割った余りを利用しています。
スポンサーリンク
コメントを残す