用js制作日期 2017-03-23

日期表:

 

<body>

<select id="year" ></select>

<select id="month">

<option>1</option>

<option>2</option>  

<option selected="selected">3</option>  

<option>4</option>

此处省略5-11

<option>12</option>

</select>

<select id="day" ></select>

<script>

var date_time=new Date();

date_year=date_time.getFullYear();                 ------获取当前年份

for (i=date_year-5;i<date_year+5;i++){          ------以当前年份为基础,向前5年向后5

var op=document.createElement("option"); 

     op.value=i;

     op.innerText=i;

if(i==date_year){              -----默认选中当前年份,当if没有大括号时,就近原则

     op.selected=true;

           }

document.getElementById("year").appendChild(op);     

           }

function add_day(max_day) {

      for(var i = 1; i < max_day; i++) {

           var op = document.createElement("option");

           op.innerText = i;

           document.getElementById("day").appendChild(op);

                                }

                  }

document.getElementById("month").onchange=function(){       ------定义一个事件

         var month_se=document.getElementById("month").selectedOptions[0].innerText;

         if(month_se == 1 || month_se == 3 || month_se == 5 || month_se == 7 || month_se == 8             || month_se == 10 || month_se == 12) {                      -------13,5,7,11,31天。

           add_day(32);

                      }

else if(month_se == 2)                             -------2月分闰年和平年

    {

      var year_se = document.getElementById("year").selectedOptions[0].innerText;

        if(year_se % 4 == 0 && year_se % 100 != 0 || year_se % 400 == 0) {

              add_day(30);                      

              }

        else {

             add_day(29);

             }

           }

else {

         add_day(31);

           }

}

</script>

</body>

难点:

1、年份不用<option>写,用for循环自动输入。

2、闰年时2月天数为29天;平年时为28天。

posted @ 2017-03-23 12:58  陈观爱  阅读(475)  评论(1编辑  收藏  举报