JavaScript处理日期显示表单
以下是表单
----------------------------------------------------------------------------------------------------------------------------------------------------------
<tr>
<td>
出生日期
</td>
<td>
<select id="year" onchange="addDay()">//当年份改变时,调用日期函数
<option value="1987">
1987
</option>
</select>
年
<select id="month" onchange="addDay()">//当月份改变时,调用日期函数
<option value="01">
01
</option>
</select>
月
<select id="day">
<option value="01">
01
</option>
</select>
日
</td>
</tr>
----------------------------------------------------------------------------------------------------------------------------------------------------------
/*当加载页面时就加载日期处理函数*/
window.onload = function() {
addYear();
addMonth();
addDay();
}
/*处理年*/
function addYear() {
var year = document.getElementById("year");
var num = new Date().getFullYear();//本地时间的年份
for ( var x = num; x >= 1900; x--) {
var option = document.createElement("option");
option.innerHTML = x;//显示内容
option.value = x;
year.appendChild(option);//加载元素
}
}
/*处理月*/
function addMonth() {
var month = document.getElementById("month");
for ( var x = 2; x <= 12; x++) {
if (x < 10) {
x = "0" + x;
}
var option = document.createElement("option");
option.innerHTML = x;
option.value = x;
month.appendChild(option);
}
}
/*处理日*/
function addDay() {
var day = document.getElementById("day");
day.options.length = 0;//清空旧的内容
var year = document.getElementById("year").value;
var month = document.getElementById("month").value;
var num;//一个月的天数
switch (month) {
case '01':
num = 31;
break;
case '02':
num = getDay(year);//调用闰年处理函数
break;
case '03':
num = 31;
break;
case '04':
num = 30;
break;
case '05':
num = 31;
break;
case '06':
num = 30;
break;
case '07':
num = 31;
break;
case '08':
num = 31;
break;
case '09':
num = 30;
break;
case '10':
num = 31;
break;
case '11':
num = 30;
break;
case '12':
num = 31;
break;
}
for ( var x = 1; x <= num; x++) {
if (x < 10) {
x = "0" + x;
}
var option = document.createElement("option");
option.innerHTML = x;
option.value = x;
day.appendChild(option);
}
}
/*方法一:判断是否是闰年,以返回2月的天数*/
function getDay(year) {
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {//如果是闰年
return 29;
} else {
return 28;
}
}
/*方法二:判断是否是闰年,以返回2月的天数,另一种算法*/
function getFebDay(year) {
var date = new Date(year, 2, 1);//得到传入的year年的三(2:表示月份的下标;1:表示当月的那一天)
var now = date.getTime();//得到当天的12:00:00:000
var newTime = now - 1000 * 60 * 60 * 12;//得到前天
var newDate = new Date(newTime);
var day = newDate.getDay();
return day;
}