- ベストアンサー
縦カレンダーの曜日に色づけする方法を知りたい
- 縦カレンダーの曜日に色づけする方法について教えてください
- PHPのswitch文を使用して、縦カレンダーの曜日に色をつける方法を教えてください
- カレンダーの日付部分に曜日の色を表示する方法を教えてください
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
whileループで何をやろうとしているのか理解出来ないが、これは、ループにする意味がないのでは??? 単純に縦型カレンダーならforループだけが有用で、あとはswitchやwhile を使わなくても、曜日を配列に入れてるように、色指定用文字列を配列に入れて、tdタグにstyle属性を付け加えればいいでしょう。 それから、forループ内で同じ配列を何度も作成し直すのは時間の無駄です。ループ外で先に作りましょう。 ーー手順抜粋ーー // 配列作成 $aday = array("日", "月", "火", "水", "木", "金", "土"); $textcolor = array("red", "blue", "darkorange", "teal", "green", "darkgoldenrod", "navy"); $backcolor = array('#ffcccc','#cccccc','#ffccff','#ccffff','#ccffcc','#ffffcc','#ccccff'); $lastd = date("d", mktime(0, 0, 0, $mm + 1, 0, $yyyy)); print '<table border="1">'; // ループ開始 for ($i = 1; $i <= $lastd; $i++){ print '<tr>'; $ts = mktime(0, 0, 0, $mm, $i, $yyyy); // $ymd表示部分省略 //曜日表示 $w = date("w", $ts); printf('<td style="color:%s;background-color:%s;"><center>%s</center></td>' ,$textcolor[$w],$backcolor[$w], $aday[$w]); print '</tr>'; } // ループ終了 print '</table>';
補足
hrm_mmmさん、お返事ありがとうございました。 早速コードを書き、実行してみました。 print '<table border="1">'; print '<tr>'; print '</tr>'; print '</table>'; 自分のコードで以上のことを書くとエラーとなるので、抜いて実行してみました。結果はきちんと表示されているのですが、 ______ 曜日|日付 ______ 月 |11月8日 ______ 火 |11月9火 ______ ・ |・ ・ ・ と曜日と日付が逆になってしまいました。いろいろと試してみたのですが、直らずに困っています。何か方法はありますか。何度もすみません。。。