初心者です。下記for文を書いてみたのですが、当月は出来ても翌月のはできませんでした。
どなたか教えて頂けますでしょうか。
$tsuki = '月'; $list =""; $list2 =""; for($i = 0; $m = date('n', strtotime(date('Y-m-1').' +'.$i.' month')), $m < 13 and $i < 2; $i++){ $list .= <<<EOF <h2>$m$tsuki</h2> <table cellspacing="0" summary="calendar"> <tr> <td>日</td> <td>月</td> <td>火</td> <td>水</td> <td>木</td> <td>金</td> <td>土</td> </tr> <tr> EOF; print $list; // 1日の曜日を取得 $wd1 = date("w", mktime(0, 0, 0, $m, 1, $y)); // その数だけ空のセルを作成 for ($i = 1; $i <= $wd1; $i++) { echo "<td> </td>"; } $d = 1; while (checkdate($m, $d, $y)) { // 日曜:赤色 if(date("w", mktime(0, 0, 0, $m, $d, $y)) == 0) { echo "<td class='sun'>$d</td>"; } // 祝日:赤色 else if(!empty($national_holiday[date("Y-m-d", mktime(0, 0, 0, $m, $d, $y))])) { echo "<td class='sun'>$d</td>"; } // 本日:シルバー else if ($d == date('j') && $y == date('Y') && $m == date('n')) { echo "<td class='today'>$d</td>"; } // 土日祝以外 else{ echo "<td class='date'>$d</td>"; } // 週の始まりと終わりでタグを出力 if (date("w", mktime(0, 0, 0, $m, $d, $y)) == 6) { // 週を終了 echo "</tr>"; // 次の週がある場合は新たな行を準備 if (checkdate($m, $d + 1, $y)) { echo "<tr>"; } } $d++; } // 最後の週の土曜日まで空のセルを作成 $wdx = date("w", mktime(0, 0, 0, $m + 1, 0, $y)); for ($i = 1; $i < 7 - $wdx; $i++) { echo "<td> </td>"; } $list2 .= <<<EOF </tr> </table> EOF; print $list2; }
回答4件
あなたの回答
tips
プレビュー