用js制作日期 2017-03-23

时间:2024-04-15 09:17:43

日期表:

用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年

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) {                      -------1,3,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天。