年月日セレクトボックスを表示

JavaScriptが使えない環境では選択肢すら出ないので注意が必要です。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<script type="text/javascript">
<!--
window.onload = function (){
    setEvent_to_OBJ("document.getElementById('year')" ,"change","iniD") 
    setEvent_to_OBJ("document.getElementById('month')","change","iniD") 
    ini();
}
function setEvent_to_OBJ(objNameStr,eventTypeNameStr,fncNameStr){
    eval(objNameStr+".on"+eventTypeNameStr+"="+ fncNameStr);
}

arrM = new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
var dayT = new Date;
var strY = dayT.getYear();
var strM = dayT.getMonth();
var strD = dayT.getDate();
if(strY < 1900){strY += 1900;}//NN系対策

function ini(){
    iniY();
    iniM();
    iniD();
}
function iniY(){
    var yr = document.getElementById("year");
    yr.options.length = 3;
    yr.options[0].text  = strY - 1;
    yr.options[1].text  = strY;
    yr.options[2].text  = strY + 1;
    yr.options[0].value = strY - 1;
    yr.options[1].value = strY;
    yr.options[2].value = strY + 1;
    yr.options[1].selected = "selected";
}
function iniM(){
    var mt = document.getElementById("month");
    mt.options.length = 12;
    for(var i=0;i<12;i++){
        mt.options[i].text  = i + 1;
        mt.options[i].value = i + 1;
        if(i == strM){mt.options[i].selected = "selected";}
    }
}
function iniD(){
    var yr    = document.getElementById("year");
    var dt    = document.getElementById("date");
    var mt    = document.getElementById("month");
    var u_flg = 0;//うるう年か否か
    var d_flg = 0;//年月が現在と同じか否か
    //月末の日数
    var lngD  = arrM[mt.options[mt.selectedIndex].value];
    if(mt.options[mt.selectedIndex].value == 2){
        u_flg = uruu(yr.options[yr.selectedIndex].value);
    }
    if(u_flg != 0){lngD ++;}
    if(mt.options[mt.selectedIndex].value == strM + 1 &&
        yr.options[yr.selectedIndex].value == strY){d_flg = 1;}

    dt.options.length = lngD;
    for(var i=0;i<lngD;i++){
        dt.options[i].text  = i + 1;
        dt.options[i].value = i + 1;
        if(i == strD - 1 && d_flg == 1){
            dt.options[i].selected = "selected";
        }
    }
    if(d_flg == 0){
        dt.options[0].selected = "selected";
    }
}
function uruu(year){
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
        return 1;
    }else{
        return 0;
    }
}
//-->
</script>
</head>
<body>
<form action="" method="post">
    <select name="year" id="year"><option value="">年</option></select>
    <select name="month" id="month"><option value="">月</option></select>
    <select name="date" id="date"><option value="">日</option></select>
</form>
</body>
</html>