PHPに惚れました

今でも多分惚れてます。

日付のセレクトボックスとか作る時に

0付きの日付をセレクトボックスで指定したい時とか、
ただ単にfor文で増分1で31回繰り返しても1〜9は01〜09にはなりません。

そんな時に使える方法。

0付きの月を表示

<?php
print"<select name=\"month\">";
for( $j = 1; $j <= 12; $j++ ){ 
	print"<option value=".date("m",2678400*($j-1)).">".date("m",2678400*($j-1))."</option>"; 
}
print"</select>月"; 
?>

date関数を使ってフォーマットする。
mは0付きの月を表示するオプション。
値に設定した2678400というのはひと月を表す数値。それに1〜12をかけて、整形する。

2678400 = 60(秒)×60(分)×24(時間)×31(日)。

0付きの日を表示

<?php
print"<select name=\"day\">"; 
  
for( $k = 1; $k <= 31; $k++ ){ 
	print"<option value=".date("d",86400*($k-1)).">".date("d",86400*($k-1))."</option>"; 
}
print"</select>日"; 
 

?>

日付に関しては毎月31日までではない。

<?
$month = 2;    //指定の月
print date("t",2678400*($month-1));   //28を表示
?>

これでその月の最終日を求める事が出来る。