ブログBlog

カレンダーの作成

投稿日:2015年07月29日

必要になる場面が多いカレンダー表示、言語によって多少は変わりますが、基本的な作り方は同じです。

phpの一例です。

先ず、表示する年、月を取得します
(今回、年と月は今日の年月から取得してます)
$year = date(&#39Y&#39);
$month = date(&#39m&#39);

年と月から月末日を取得します
$last_day = date(&#39j&#39, mktime(0, 0, 0, $month + 1, 0, $year));

年と月から1日の曜日(番号)を取得します
0→日 / 1→月 / 2→火 / 3→水 / 4→木 / 5→金 / 6→土
$timestamp = mktime(0, 0, 0, $month, $day, $year);
$weekno = date(&#39w&#39, $timestamp);

$day=1;
$calendar=&quot"

日付のループ
while($day<=$last_day){   $calendar .= &lttr>   曜日でループします   for($week = 0 ; $week < 7 ; $week++){    1日より前は空欄にする     if($day == 1 && $week < $weekno){       $calendar .= &lttd&gt&lt/td>     月末日より後ろを空欄にする     }else if($last_day < $day){       $calendar .= &lttd&gt&lt/td>     }else{       $calendar .= &lttd&gt$day&lt/td>       次の日へ       $day++;     }   }      改行する   $calendar .= &lt/tr> } 後はhtmlに以下のように書き込むとカレンダーになります &lttable&gt   &lttr&gt     &ltth&gt日&lt/th&gt     &ltth&gt月&lt/th&gt     &ltth&gt火&lt/th&gt     &ltth&gt水&lt/th&gt     &ltth&gt木&lt/th&gt     &ltth&gt金&lt/th&gt     &ltth&gt土&lt/th&gt   &lt/tr&gt &lt?php echo $calendar ?&gt &lt/table&gt

PAGE TOP