求大神指教js实现日期查询问题

求教js大神在option中分别出现 2018前后一百年的年月日,并弹窗输出当前所属日期和星期几(注:还要注意闰年存在,1 3 5 7 8 10 12是31天,2 4 6 9 11是30天,2月看是否闰年28或29天)。拜托啦


<HTML>
 
    <HEAD>
 
        <title>年月日三联动下拉框</title>
 
        <meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
 
        <meta name='author' content='http://singlepine.cnblogs.com/'>
 
    </HEAD>
 
    <body>
 
        <form name="form1">
 
            <select name="YYYY" onchange="YYYYDD(this.value)">
 
                <option value="" selected>请选择 年</option>
 
            </select>
 
            <select name="MM" onchange="MMDD(this.value)">
 
                <option value="" selected>选择 月</option>
 
            </select>
 
            <select name="DD">
 
                <option value="" selected>选择 日</option>
 
            </select>
 
        </form>
 
        <script language="JavaScript"><!--
 
            function YYYYMMDDstart()
 
            {
 
                MonHead = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
 
                //先给年下拉框赋内容
 
                var y   = new Date().getFullYear();
 
                for (var i = (y-100); i < (y+100); i++) 
 
                    document.form1.YYYY.options.add(new Option(" "+ i +" 年", i));
 
  
 
                //赋月份的下拉框
 
                for (var i = 1; i < 13; i++)
 
                          document.form1.MM.options.add(new Option(" " + i + " 月", i));
 
                document.form1.YYYY.value = y;
 
                document.form1.MM.value = new Date().getMonth() + 1;
 
                var n = MonHead[new Date().getMonth()];
 
                if (new Date().getMonth() ==1 && IsPinYear(YYYYvalue)) n++;
 
                    writeDay(n); //赋日期下拉框
 
                document.form1.DD.value = new Date().getDate();
 
            }
 
            if(document.attachEvent)
 
                window.attachEvent("onload", YYYYMMDDstart);
 
            else
 
                window.addEventListener('load', YYYYMMDDstart, false);
 
            function YYYYDD(str) //年发生变化时日期发生变化(主要是判断闰平年)
 
            {
 
                var MMvalue = document.form1.MM.options[document.form1.MM.selectedIndex].value;
 
                if (MMvalue == ""){ var e = document.form1.DD; optionsClear(e); return;}
 
                var n = MonHead[MMvalue - 1];
 
                if (MMvalue ==2 && IsPinYear(str)) n++;
 
                    writeDay(n)
 
            }
 
            function MMDD(str)  //月发生变化时日期联动
 
            {
 
                var YYYYvalue = document.form1.YYYY.options[document.form1.YYYY.selectedIndex].value;
 
                if (YYYYvalue == ""){ var e = document.form1.DD; optionsClear(e); return;}
 
                var n = MonHead[str - 1];
 
                if (str ==2 && IsPinYear(YYYYvalue)) n++;
 
                    writeDay(n)
 
            }
 
            function writeDay(n)  //据条件写日期的下拉框
 
            {
 
                var e = document.form1.DD; optionsClear(e);
 
                for (var i=1; i<(n+1); i++)
 
                    e.options.add(new Option(" "+ i + " 日", i));
 
            }
 
            function IsPinYear(year)//判断是否闰平年
 
            { 
 
                return(0 == year%4 && (year%100 !=0 || year%400 == 0));
 
            }
 
            function optionsClear(e)
 
            {
 
                e.options.length = 1;
 
            }
 
    //-->
 
    </script>
 
    </body>
 
</HTML>

温馨提示:答案为网友推荐,仅供参考