自己写的日期联动菜单
2009年04月3日
by 庆亮
0 comments
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript">
var yearBegin = 1900;
var today = new Date();
var yearEnd = Number(today.getFullYear());
var monthDays = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
var monthDaysP = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
window.onload = function init()
{
initYear();
initMonth();
initDay();
}
function writeDate(year, month, day)//
{
if (year < yearBegin)
{
year = yearBegin;
}
else if (year > yearEnd)
{
year = yearEnd;
}
if (month >12 || month <1)
{
month = 1;
}
//做个日期合法检查
if (IsPinYear(year))
{
if (monthDaysP[month-1] < day)
{
day = monthDaysP[month-1];
}
}
else
{
if (monthDays[month-1] < day)
{
day = monthDays[month-1];
}
}
var yearObj = document.getElementById(‘year’);
var monthObj = document.getElementById(‘monthSelect’);
var dayObj = document.getElementById(‘daySelect’);
yearObj.selectedIndex = year - yearBegin;
monthObj.selectedIndex = month-1;
dayObj.selectedIndex = day-1;
}
function initYear()
{
var yearObj = document.getElementById(‘year’);
var monthObj = document.getElementById(‘monthSelect’);
var dayObj = document.getElementById(‘daySelect’);
for(i=yearBegin; i<=yearEnd; i++)
{
yearObj.options.add(new Option(i, i));
}
}
function initMonth() //
{
var yearObj = document.getElementById(‘year’);
var monthObj = document.getElementById(‘monthSelect’);
var dayObj = document.getElementById(‘daySelect’);
for(i=1; i<=12; i++)
{
monthObj.options.add(new Option(i, i));
}
}
function initDay()//设置日期
{
var dayObj = document.getElementById(‘daySelect’);
var month = getSelMonth();
var year = getSelYear();
dayObj.options.length = 0;
if (IsPinYear(year))
{
days = monthDaysP[month-1];
for(i=1; i<=days; i++)
{
dayObj.options.add(new Option(i, i));
}
}
else
{
days = monthDays[month-1];
for(i=1; i<=days; i++)
{
dayObj.options.add(new Option(i, i));
}
}
}
function monthChange()
{
initDay();
}
function yearChange()//年份发生改变
{
initDay();
}
function getSelYear()//获得当前选择的年
{
var yearObj = document.getElementById(‘year’);
var yearIndex=yearObj.selectedIndex;
return yearObj.options[yearIndex].value;
}
function getSelMonth()//获得当前选择的月份
{
var monthObj = document.getElementById(‘monthSelect’);
var monthIndex=monthObj.selectedIndex;
return monthObj.options[monthIndex].value;
}
function IsPinYear(year)//判断是否闰平年
{ return(0 == year%4 && (year%100 !=0 || year%400 == 0))}
</script>
</head>
<body>
<select name="year" id="year" onchange="yearChange();">
</select>
<select name="monthSelect" id="monthSelect" onchange="monthChange();">
</select>
<select name="daySelect" id="daySelect">
</select>
<a href="javascript:writeDate(1987, 9, 7);">19870907</a>
<a href="javascript:writeDate(2987, 9, 7);">不合法的日期29870907</a>
<script type=‘text/javascript’>
//<![CDATA[
if (document.getElementById('processtime'))
document.getElementById('processtime').innerHTML = "<span class='runtimedisplay'>Run in 51 ms, 8 Queries, Gzip enabled.</span>";
//]]>
</script>
</body>
</html>