できた・・・?
確認する限りでは出力はあってます
こんなかんじで表示したいのです。
ソースはこちら。習ったことだけを使って、ぐぐらない縛りです←
<?php $y ="2017"; $m="5"; $lastday=date("t",mktime(0,0,0,$m,1,$y)); $weekday=date("w",mktime(0,0,0,$m,1,$y)); $tbl = ""; $tbl.='<table border="1">'; $className=""; //振替休日も祝日で登録してね。火曜日、水曜日が振替休日になる場合もあります。 $holiday =[ "2017/01/01"=>"元日", "2017/01/02"=>"振替休日", "2017/01/09"=>"成人の日", "2017/02/11"=>"建国記念の日", "2017/03/20"=>"春分の日", "2017/04/29"=>"昭和の日", "2017/05/03"=>"憲法記念日", "2017/05/04"=>"みどりの日", "2017/05/05"=>"こどもの日", "2017/07/17"=>"海の日", "2017/08/11"=>"山の日", "2017/09/18"=>"敬老の日", "2017/09/23"=>"秋分の日", "2017/10/09"=>"体育の日", "2017/11/03"=>"文化の日", "2017/11/23"=>"勤労感謝の日", "2017/12/23"=>"天皇誕生日", ]; for ($i=1;$i<43;$i++){ if ($i % 7 == 1){ $tbl.= "<tr>"; $className = 'class = "sunday"'; } elseif($i % 7 == 0){ $className = 'class ="saturday"'; }else{ $className=''; } //祝日対応 if(array_key_exists(date("Y/m/d",mktime(0,0,0,$m,$i - $weekday,2017)),$holiday)){ $className='class = "sunday"'; } $tbl.="<td>"; if ($i <= $weekday || $i > $weekday + $lastday){ $tbl.=" "; $tbl.= '<span style="color:gray">' . date("j",mktime(0,0,0,$m,$i - $weekday,2017)) . '</span>'; }else{ $tbl.="<span ${className}>" . ($i-$weekday) .'</span>'; } if ($i % 7 == 0){ $tbl.="</tr>"; } } $tbl.="</table>"; ?> <html> <head> <style> .sunday{ color:red; } .saturday{ color:blue; } table{ text-align:center; } </style> </head> <body> <?php print date("Y年n月",mktime(0,0,0,$m,1,$y)) ?> <?php print tidy_repair_string($tbl) ?> <?php $tbl ?> </body> </html>
年月を引数で受け取って関数にすれば、たぶん使えなくも……。
なにかもっといいほうほうないかなー。
もしくはもうちょっと綺麗に書きたいものです。