問題
13
PHP
カレンダーをテーブルタグで表示しよう
PHPの問題に挑戦しよう!
問題
「カレンダーをテーブルタグで表示しよう」
今月のカレンダーをテーブルタグを使って画面に表示しよう
次のCSSを適用するとキレイに表示できます
次のCSSを適用するとキレイに表示できます
あらかじめエディタに書くコード
table, tr, td {
border: solid 1px;
}
td {
text-align: center;
width: 50px;
}
¥CSS¥
期待する画面
Sun Mon Tue Wed Thu Fri Sta
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
※実行した日付により変わります
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
※実行した日付により変わります
解答と解説(カレンダーをテーブルタグで表示しよう)
解説
LINE登録して解答を見る
※ご登録後トークルーム下部にあるメニュー内
「無料問題集※解答付き」を押すと
解答閲覧用URLが届きます
カレンダーは基本的には1日から月末までとなっている。
まずは月末の日付を求めよう。
date("t")で月末の日付が返ってくるぞ。
カレンダーは横が曜日、縦が週となっている。
2次元配列にすると容易に管理できそうだ。
日にちは直列になっている。
日にちをループさせて日曜日から土曜日の単位にまとめよう。
曜日はdate("w")で求めることができる。
日曜日が0、月曜日が1と続き、土曜日が6となっている。
月初または日曜日に週のデータを初期化し、月末または土曜日にカレンダーにセットするようにしよう。
カレンダーを表示する場合は月初より前、月末より後は別の月となることに注意しよう。
出力がずれる場合はフォントを等幅フォントにすることによって綺麗に揃うぞ。
今回はデータを作る処理と表示する処理を分離することにした。
無駄に思うかもしれないが分離することによって保守性が高くなるのでおススメだ。
まずは月末の日付を求めよう。
date("t")で月末の日付が返ってくるぞ。
カレンダーは横が曜日、縦が週となっている。
2次元配列にすると容易に管理できそうだ。
日にちは直列になっている。
日にちをループさせて日曜日から土曜日の単位にまとめよう。
曜日はdate("w")で求めることができる。
日曜日が0、月曜日が1と続き、土曜日が6となっている。
月初または日曜日に週のデータを初期化し、月末または土曜日にカレンダーにセットするようにしよう。
カレンダーを表示する場合は月初より前、月末より後は別の月となることに注意しよう。
出力がずれる場合はフォントを等幅フォントにすることによって綺麗に揃うぞ。
今回はデータを作る処理と表示する処理を分離することにした。
無駄に思うかもしれないが分離することによって保守性が高くなるのでおススメだ。