font-size:9pt; } </style> </head><body><table align=center><tr><td width=80%> <script language=javascript> document.write("<select name=yearInput onchange='showCalendar()'>"); for (var i=1930;i<2200;i++) document.write("<option value='"+i+"'>"+i+"</option>"); document.write("</select>年<select name=monthInput onchange='showCalendar()'>"); for (var i=1;i<13;i++) document.write("<option value='"+i+"'>"+i+"</option>"); document.write("</select>月"); document.write("</td><td align=right><input type=button value=今天 onclick='returnToday();'>"); </script> </td></tr></table> <div id="theCalendar" align=center width=100% > </div> </body> </html><script language="javascript"> function showCalendar() { var theCalendarContent=""; var b=new Date(yearInput.value+"\/"+monthInput.value+"\/"+1); var c=new Date(yearInput.value+"\/"+(monthInput.value*1+1)+"\/"+0); var theMonthDays=c.getDate(); var i=0; var j=b.getDay(); var k=1; theCalendarContent+="<table ondblclick='getTD(event.srcElement)' border=1 style='border: solid 1 #5661a8; font-Size: 9pt; font-family: Arial; background: #e0e3f7' width=100% align=center><tr bordercolorlight='#5661a8' bordercolordark='#5661a8' style='background: #5661a8; color: #ffffff'><td >周日</td><td>周一</td><td>周二</td><td>周三</td><td>周四</td><td>周五</td><td>周六</td></tr><tr>"; for (j=0;j<b.getDay();j++) theCalendarContent+="<td> </td>"; for (i=0;(i<6)&&(k<theMonthDays+1);i++) { for (j;j<7;j++) { if (k<theMonthDays+1) { if (j<6&&j>0) theCalendarContent+="<td bordercolorlight='#5661a8' align='center' style='color:#ff0000'>"+(k++)+"</td>"; else theCalendarContent+="<td bordercolorlight='#5661a8' align='center'>"+(k++)+"</td>"; } else theCalendarContent+="<td> </td>"; } theCalendarContent+="</tr><tr >"; j=0; } theCalendarContent+="</tr></table>"; theCalendar.innerHTML=theCalendarContent; }
function getTD(obj) { if (obj.tagName!="TD") return false; if (isNaN(obj.innerText)||(obj.innerText==0)) return false; var a=yearInput.value+"-"+monthInput.value+"-"+obj.innerText; window.returnValue=a; window.close(); }
function returnToday() { var todaydate=new Date(); var a=todaydate.getFullYear()+"-"+(todaydate.getMonth()+1)+"-"+todaydate.getDate(); window.returnValue=a; window.close(); } function initCalendar() { var a=window.dialogArguments; var b=new Date(); if ((a!=null)&&(a.length>4)) b=new Date(a); if (isNaN(b)) b=new Date(); yearInput.value=b.getFullYear(); monthInput.value=(b.getMonth()+1); showCalendar(); } initCalendar();
http://expert.csdn.net/Expert/topic/726/726705.xml?temp=.3123438
后来自己也写过一个,用于在弹出框出输入日期。可能功能没有你的多,不过也差不多够用
日历生成文件:calendar.htm<html>
<head>
<title>日历</title>
<style>
TD{
font-size:9pt; }
</style>
</head><body><table align=center><tr><td width=80%>
<script language=javascript>
document.write("<select name=yearInput onchange='showCalendar()'>");
for (var i=1930;i<2200;i++) document.write("<option value='"+i+"'>"+i+"</option>");
document.write("</select>年<select name=monthInput onchange='showCalendar()'>");
for (var i=1;i<13;i++) document.write("<option value='"+i+"'>"+i+"</option>");
document.write("</select>月");
document.write("</td><td align=right><input type=button value=今天 onclick='returnToday();'>");
</script>
</td></tr></table>
<div id="theCalendar" align=center width=100% >
</div>
</body>
</html><script language="javascript">
function showCalendar()
{
var theCalendarContent="";
var b=new Date(yearInput.value+"\/"+monthInput.value+"\/"+1);
var c=new Date(yearInput.value+"\/"+(monthInput.value*1+1)+"\/"+0);
var theMonthDays=c.getDate();
var i=0;
var j=b.getDay();
var k=1;
theCalendarContent+="<table ondblclick='getTD(event.srcElement)' border=1 style='border: solid 1 #5661a8; font-Size: 9pt; font-family: Arial; background: #e0e3f7' width=100% align=center><tr bordercolorlight='#5661a8' bordercolordark='#5661a8' style='background: #5661a8; color: #ffffff'><td >周日</td><td>周一</td><td>周二</td><td>周三</td><td>周四</td><td>周五</td><td>周六</td></tr><tr>";
for (j=0;j<b.getDay();j++) theCalendarContent+="<td> </td>";
for (i=0;(i<6)&&(k<theMonthDays+1);i++)
{
for (j;j<7;j++)
{
if (k<theMonthDays+1)
{
if (j<6&&j>0) theCalendarContent+="<td bordercolorlight='#5661a8' align='center' style='color:#ff0000'>"+(k++)+"</td>";
else theCalendarContent+="<td bordercolorlight='#5661a8' align='center'>"+(k++)+"</td>";
}
else theCalendarContent+="<td> </td>";
}
theCalendarContent+="</tr><tr >";
j=0;
}
theCalendarContent+="</tr></table>";
theCalendar.innerHTML=theCalendarContent;
}
function getTD(obj)
{
if (obj.tagName!="TD") return false;
if (isNaN(obj.innerText)||(obj.innerText==0)) return false;
var a=yearInput.value+"-"+monthInput.value+"-"+obj.innerText;
window.returnValue=a;
window.close();
}
function returnToday()
{
var todaydate=new Date();
var a=todaydate.getFullYear()+"-"+(todaydate.getMonth()+1)+"-"+todaydate.getDate();
window.returnValue=a;
window.close();
} function initCalendar()
{
var a=window.dialogArguments;
var b=new Date();
if ((a!=null)&&(a.length>4)) b=new Date(a);
if (isNaN(b)) b=new Date();
yearInput.value=b.getFullYear();
monthInput.value=(b.getMonth()+1);
showCalendar();
}
initCalendar();
</script>