前回の質問ではたくさんの回答者さんによる回答ありがとうございます。
その時のプログラムと大して変わらないとは思いますが、表示する日付をプルダウンメニューにより指定し、表示ボタンを押すことで表示できるようにしたいのですが・・・。
(1) (日数を考慮した部分を除外)動作が不安定であるので、どの部分がどうおかしいのか見てほしい。
(2) 指定した月の日数の記述方法がわからず、if文でやってみたがうまくいかない。うるう年も考慮されない。
(3) プルダウンメニューの[年]をfor文で入れたいが方法がわからない。
この3点について、可能であればアドバイスをいただきたいと思っています。回答よろしくお願いします。
PHP
1 2<!DOCTYPE html> 3<html lang="ja"> 4<head> 5 <meta charset="utf-8"> 6 <title>カレンダー</title> 7</head> 8<body> 9 <form method="get" action="3.php"> 10 <select name="year"> 11 <option value="2018">2018</option> 12 <option value="2019">2019</option> 13 <option value="2020">2020</option> 14 </select>年 15 <select name="month"> 16 <option value="1">1</option> 17 <option value="2">2</option> 18 <option value="3">3</option> 19 <option value="4">4</option> 20 <option value="5">5</option> 21 <option value="6">6</option> 22 <option value="7">7</option> 23 <option value="8">8</option> 24 <option value="9">9</option> 25 <option value="10">10</option> 26 <option value="11">11</option> 27 <option value="12">12</option> 28 </select>月 29 <input type="submit" value="表示"> 30 </form> 31 <?php 32 ini_set('display_errors',1); //エラー表示 33 34 $year=$_GET['year']; 35 $month=$_GET['month']; 36 $day=0; 37 $w=date("w"); 38 if($month==2){ 39 if(($year%4==0&&$year%100!=0)||$year%400)) $lastday=29; 40 else $lastday=28; 41 } 42 else if($month==4||$month==6||$month==9||$month==11) $lastday=30; 43 else $lastday=31; 44 45 46 $wkanji[0]="日"; 47 $wkanji[1]="月"; 48 $wkanji[2]="火"; 49 $wkanji[3]="水"; 50 $wkanji[4]="木"; 51 $wkanji[5]="金"; 52 $wkanji[6]="土"; 53 54 echo "<br>{$year}年{$month}月<br><br>"; 55 for($d=1;$d<=$lastday;$d++){ 56 $w=date("w",mktime(0,0,0,$month,$d,$year)); 57 $youbi=$wkanji[$w]; 58 $dd=$d."日(".$youbi.")"; 59 if($w==0) $dd="<span style='color:red'>{$dd}</span>"; 60 if($w==6) $dd="<span style='color:blue'>{$dd}</span>"; 61 echo "{$dd}<br>"; 62 } 63 ?> 64 65</body> 66</html>
回答3件
あなたの回答
tips
プレビュー