最終的には画像のように送信ボタンを押したら、選択年月が曜日と合わせて
テーブルで出力されるカレンダーを作りたいのですが、
月初の曜日を月末まで連続して出力する処理の書き方がわからないです。
基礎的なことかと思いますが、ご親切な方どなたかご教授いただけないでしょうか。
曜日が合わせて出力できたら送信ボタンに$_POSTを紐付けようと思っています。
*背景色は無視して結構です。
現在途中のソースコードですが、ご確認いただければと思います。
<?php $d = date('Y/m/d');//今月日付取得 list($year, $month, $day) = explode('/', $d);//日付を分解 $wd = date('w', $timestamp);//曜日(0:日曜~6:土曜)の取得 $ld = date('t');//月の日数 $thisYear = date('Y');//今年 $firstDay = date('Y/m/d', mktime(0, 0, 0, $month , 1, $year));//当月の初日を取得 $lastDay = date('Y/m/d', mktime(0, 0, 0, $month +1, 0, $year));//当月の末日を取得 $firstWeek = date('w', mktime(0, 0, 0, $month , 1, $year));//当月の初日の曜日を取得 for ($i=($thisYear-10); $i<=($thisYear+10); $i++) {//プルダウンの表記は今年から±10 $optionYear .= '<option value="' . $i . '">' . $i . '</option>' . "\n"; } for ($i=1;$i<=12; $i++) {//プルダウン1~12月 $optionMonth .= '<option value="' . $i . '">' . $i . '</option>' . "\n"; } for ($i=1; $i<=31; $i++) {//プルダウン1~31日 $optionDay .= '<option value="' . $i . '">' . $i . '</option>' . "\n"; } $weekday = array('日','月','火','水','木','金','土');//曜日の配列作成 $fw = $firstWeek; $s = '<table border="1"><tr>'; for ($day=$firstDay; $day<=$lastDay; $day++) {//月末まで繰り返し出力 $s .= "<td>$day</td><td>$fw</td></tr>";//選択月の日付・曜日の表示 } $s .= "</table>"; ?> <!doctype html> <html> <head> <meta charset="UTF-8"> <title>選択・日付曜日出力</title> <style> td { padding: 5px; border: 1px solid #333; text-align: right; } </style> </head> <body> <h1>選択月の日付と曜日を表示</h1> <form action="" method="post"> <select name="year"><?php echo $optionYear; ?></select>年 <select name="month"><?php echo $optionMonth; ?></select>月 <input type="submit" name="btn" value="送信"> </form> <?php echo $s; ?> </body> </html>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/16 13:25