<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</HEAD>
<BODY>
<form name="form1" method="post" action="">
日期:<input type="text" id="a" onclick="restrictInputValue(this)" onkeydown="ddd(this)" >
天数:<input type="text" id="b" >
日期相加:<input type="text" id="c" >
<input type="button" value="判断是否合法" onClick="aaa(document.getElementById('a'))">
<input type="button" value="获得日期" onClick="bbb(document.getElementById('a'))">
<input type="button" value="日期相加" onClick="ccc(document.getElementById('a'),document.getElementById('b'))">
</form>
</BODY>
</HTML>

<script language="javascript">

window.onload=init;

function init()...{
var oDate = new Date();
var result= oDate.getFullYear()+"-"+(oDate.getMonth()<10?("0" + (oDate.getMonth()+1)):(oDate.getMonth()+1))+"-"+(oDate.getDate()<10?("0" + oDate.getDate()) : oDate.getDate());
document.getElementById("a").value=result;
}

String.prototype.isDate = function()

...{

var r = this.match(/^(d...{4})(-|/)(d...{1,2})2(d...{1,2})$/);
if(r==null)return false;
var d = new Date(r[1], r[3]-1,r[4]);

if (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4])...{
return true;
}
}


function aaa(obj)...{

if(!obj.value.isDate())...{
alert("error");
obj.focus();
}
}


function bbb(obj)...{

var r = obj.value.match(/^(d...{4})(-|/)(d...{1,2})2(d...{1,2})$/);
if(r==null)return false;
var d = new Date(r[1], r[3]-1,r[4]);
var result=d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()
document.getElementById("c").value=""
document.getElementById("c").value=result
}


function ccc(obj1,obj2)...{

var r = obj1.value.match(/^(d...{4})(-|/)(d...{1,2})2(d...{1,2})$/);
if(r==null)return false;
var d = new Date(r[1], r[3]-1,r[4]);
var c=new Date(d.getTime()+obj2.value*1000*60*60*24)
var result=c.getFullYear()+"-"+((parseInt(c.getMonth())+1>9)?"":"0")+(parseInt(c.getMonth())+1)+"-"+(c.getDate()>9?"":"0")+c.getDate()
document.getElementById("c").value=""
document.getElementById("c").value=result
}


function restrictInputValue(obj)

...{
var range = obj.createTextRange();
var selRange = document.selection.createRange();
range.moveStart("character",-obj.value.length)
selRange.setEndPoint("StartToStart",range);

if(selRange.text.length<5)...{
specialText_SelectYear(obj);
}

else if(selRange.text.length>4&&selRange.text.length<8)...{
specialText_SelectMonth(obj)
}

else...{
specialText_SelectDate(obj)
}
}

function specialText_SelectYear(oInput)

...{
var oRange = oInput.createTextRange();
oRange.moveStart("character",0);
oRange.moveEnd("character",-6);
//代表选中了年
oInput.selectIndex = 1;
oRange.select();
}
//选中月份
function specialText_SelectMonth(oInput)

...{
var oRange = oInput.createTextRange();
oRange.moveStart("character",5);
oRange.moveEnd("character",-3);
//代表选中了月
oInput.selectIndex = 2;
oRange.select();
}
//选中日期
function specialText_SelectDate(oInput)

...{
var oRange = oInput.createTextRange();
oRange.moveStart("character",8);
//代表选中了日期
oInput.selectIndex = 3;
oRange.select();
}


function ddd(oInput)...{
oEvent=window.event
if((oEvent.keyCode >= 48 && oEvent.keyCode <= 57) ||

(oEvent.keyCode >= 96 && oEvent.keyCode <= 105))...{
return;
}
oEvent.returnValue=false;
}
</script>
我写的这个就算比较简单的了,适合初学者对日期应用的认识较为合适。