js日期控件的代码

来源:互联网 发布:北京unity3d培训 编辑:程序博客网 时间:2024/05/03 20:04

【setday(this)】

<textarea cols="50" rows="15" name="code" class="javascript:collapse">/* 主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子:一、&lt;input name=txt&gt;&lt;input type=button value=setday onclick="setday(this,document.all.txt)"&gt;二、&lt;input onfocus="setday(this)"&gt;*/var bMoveable = true;var strFrame;document.writeln('&lt;iframe id=endDateLayer frameborder=0 width=162 height=211 style="position: absolute; z-index: 9998999999; display: none" mce_style="position: absolute; z-index: 9998999999; display: none"&gt;&lt;/iframe&gt;');strFrame = '&lt;mce:style&gt;&lt;!--';strFrame += 'INPUT.button{BORDER-RIGHT: #63A3E9 1px solid;BORDER-TOP: #63A3E9 1px solid;BORDER-LEFT: #63A3E9 1px solid;';strFrame += 'BORDER-BOTTOM: #63A3E9 1px solid;BACKGROUND-COLOR: #63A3E9;font-family:宋体;}';strFrame += 'TD{FONT-SIZE: 9pt;font-family:宋体;}';strFrame += '--&gt;&lt;/mce:style&gt;&lt;style mce_bogus="1"&gt;';strFrame += 'INPUT.button{BORDER-RIGHT: #63A3E9 1px solid;BORDER-TOP: #63A3E9 1px solid;BORDER-LEFT: #63A3E9 1px solid;';strFrame += 'BORDER-BOTTOM: #63A3E9 1px solid;BACKGROUND-COLOR: #63A3E9;font-family:宋体;}';strFrame += 'TD{FONT-SIZE: 9pt;font-family:宋体;}';strFrame += '&lt;/style&gt;';strFrame += '&lt;mce:script type="text/javascript"&gt;&lt;!--var datelayerx,datelayery;var bDrag;';strFrame += 'function document.onmousemove(){if(bDrag &amp;&amp; window.event.button==1){var DateLayer=parent.document.getElementById("endDateLayer").style;DateLayer.posLeft += window.event.clientX-datelayerx;DateLayer.posTop += window.event.clientY-datelayery;}}';strFrame += 'function DragStart(){var DateLayer=parent.document.getElementById("endDateLayer").style;datelayerx=window.event.clientX;datelayery=window.event.clientY;bDrag=true;}';strFrame += 'function DragEnd(){bDrag=false;}';strFrame += '// --&gt;&lt;/mce:script&gt;';strFrame += '&lt;div style="z-index:9999;position: absolute; left:0; top:0;" onselectstart="return false"&gt;';strFrame += '&lt;span id=tmpSelectYearLayer style="z-index: 9999;position: absolute;top: 3; left: 19;display: none"&gt;&lt;/span&gt;';strFrame += '&lt;span id=tmpSelectMonthLayer style="z-index: 9999;position: absolute;top: 3; left: 78;display: none"&gt;&lt;/span&gt;';strFrame += '&lt;span id=tmpSelectHourLayer style="z-index: 9999;position: absolute;top: 188; left: 35px;display: none"&gt;&lt;/span&gt;';strFrame += '&lt;span id=tmpSelectMinuteLayer style="z-index:9999;position:absolute;top: 188; left: 77px;display: none"&gt;&lt;/span&gt;';strFrame += '&lt;span id=tmpSelectSecondLayer style="z-index:9999;position:absolute;top: 188; left: 119px;display: none"&gt;&lt;/span&gt;';strFrame += '&lt;table border=1 cellspacing=0 cellpadding=0 width=142 height=160 bordercolor=#63A3E9 bgcolor=#63A3E9 &gt;';strFrame += ' &lt;tr&gt;&lt;td width=142 height=23 bgcolor=#FFFFFF&gt;';strFrame += ' &lt;table border=0 cellspacing=1 cellpadding=0 width=158 height=23&gt;';strFrame += ' &lt;tr align=center &gt;';strFrame += ' &lt;td width=16 align=center bgcolor=#63A3E9 style="font-size:12px;cursor: hand;color: #ffffff" mce_style="font-size:12px;cursor: hand;color: #ffffff" ';strFrame += ' onclick="parent.meizzPrevM()" title="向前翻 1 月" &gt;&lt;b &gt;&lt;&lt;/b&gt;&lt;/td&gt;';strFrame += ' &lt;td width=60 align="center" bgcolor="#63A3E9" style="font-size:12px;cursor:hand" mce_style="font-size:12px;cursor:hand" ';strFrame += ' onmouseover="style.backgroundColor=/'#aaccf3/'"';strFrame += ' onmouseout="style.backgroundColor=/'#63A3E9/'" ';strFrame += ' onclick="parent.tmpSelectYearInnerHTML(this.innerText.substring(0,4))" ';strFrame += ' title="点击这里选择年份"&gt;&lt;span id=meizzYearHead&gt;&lt;/span&gt;&lt;/td&gt;';strFrame += ' &lt;td width=48 align="center" style="font-size:12px;font-color: #ffffff;cursor:hand" mce_style="font-size:12px;font-color: #ffffff;cursor:hand" ';strFrame += ' bgcolor="#63A3E9" onmouseover="style.backgroundColor=/'#aaccf3/'" ';strFrame += ' onmouseout="style.backgroundColor=/'#63A3E9/'" ';strFrame += ' onclick="parent.tmpSelectMonthInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';strFrame += ' title="点击这里选择月份"&gt;&lt;span id=meizzMonthHead &gt;&lt;/span&gt;&lt;/td&gt;';strFrame += ' &lt;td width=16 bgcolor=#63A3E9 align=center style="font-size:12px;cursor: hand;color: #ffffff" mce_style="font-size:12px;cursor: hand;color: #ffffff" ';strFrame += ' onclick="parent.meizzNextM()" title="向后翻 1 月" &gt;&lt;b &gt;&gt;&lt;/b&gt;&lt;/td&gt;';strFrame += ' &lt;/tr&gt;';strFrame += ' &lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;';strFrame += ' &lt;tr&gt;&lt;td width=142 height=18 &gt;';strFrame += ' &lt;table border=0 cellspacing=0 cellpadding=2 bgcolor=#63A3E9 ' + (bMoveable ? 'onmousedown="DragStart()" onmouseup="DragEnd()"' : '');strFrame += 'BORDERCOLORLIGHT=#63A3E9 BORDERCOLORDARK=#FFFFFF width=140 height=20 style="cursor:' + (bMoveable ? 'move' : 'default') + '" mce_style="cursor:' + (bMoveable ? 'move' : 'default') + '"&gt;';strFrame += ' &lt;tr&gt;&lt;td style="font-size:12px;color:#ffffff" mce_style="font-size:12px;color:#ffffff" width=20&gt;&nbsp;日&lt;/td&gt;';strFrame += '&lt;td style="font-size:12px;color:#FFFFFF" mce_style="font-size:12px;color:#FFFFFF" &gt;&nbsp;一&lt;/td&gt;&lt;td style="font-size:12px;color:#FFFFFF" mce_style="font-size:12px;color:#FFFFFF"&gt;&nbsp;二&lt;/td&gt;';strFrame += '&lt;td style="font-size:12px;color:#FFFFFF" mce_style="font-size:12px;color:#FFFFFF" &gt;&nbsp;三&lt;/td&gt;&lt;td style="font-size:12px;color:#FFFFFF" mce_style="font-size:12px;color:#FFFFFF" &gt;&nbsp;四&lt;/td&gt;';strFrame += '&lt;td style="font-size:12px;color:#FFFFFF" mce_style="font-size:12px;color:#FFFFFF" &gt;&nbsp;五&lt;/td&gt;&lt;td style="font-size:12px;color:#FFFFFF" mce_style="font-size:12px;color:#FFFFFF" &gt;&nbsp;六&lt;/td&gt;&lt;/tr&gt;';strFrame += '&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;';strFrame += ' &lt;tr &gt;&lt;td width=142 height=120 &gt;';strFrame += ' &lt;table border=1 cellspacing=2 cellpadding=2 BORDERCOLORLIGHT=#63A3E9 BORDERCOLORDARK=#FFFFFF bgcolor=#fff8ec width=140 height=120 &gt;';var n = 0; for (j = 0; j &lt; 5; j++) { strFrame += ' &lt;tr align=center &gt;'; for (i = 0; i &lt; 7; i++) { strFrame += '&lt;td width=20 height=20 id=meizzDay' + n + ' style="font-size:12px" mce_style="font-size:12px" onclick=parent.meizzDayClick(this.innerText,0)&gt;&lt;/td&gt;'; n++; } strFrame += '&lt;/tr&gt;';}strFrame += ' &lt;tr align=center &gt;';for (i = 35; i &lt; 37; i++) strFrame += '&lt;td width=20 height=20 id=meizzDay' + i + ' style="font-size:12px" mce_style="font-size:12px" onclick="parent.meizzDayClick(this.innerText,0)"&gt;&lt;/td&gt;';strFrame += ' &lt;td colspan=5 align=right style="color:#1478eb" mce_style="color:#1478eb"&gt;&lt;span onclick="parent.setNull()" style="font-size:12px;cursor: hand" mce_style="font-size:12px;cursor: hand"';strFrame += ' onmouseover="style.color=/'#ff0000/'" onmouseout="style.color=/'#1478eb/'" title="将日期置空"&gt;置空&lt;/span&gt;&nbsp;&nbsp;&lt;span onclick="parent.meizzToday()" style="font-size:12px;cursor: hand" mce_style="font-size:12px;cursor: hand"';strFrame += ' onmouseover="style.color=/'#ff0000/'" onmouseout="style.color=/'#1478eb/'" title="当前日期时间"&gt;当前&lt;/span&gt;&nbsp;&nbsp;&lt;span style="cursor:hand" mce_style="cursor:hand" id=evaAllOK onmouseover="style.color=/'#ff0000/'" onmouseout="style.color=/'#1478eb/'" onclick="parent.closeLayer()" title="关闭日历"&gt;关闭&nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;';strFrame += ' &lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr &gt;&lt;td &gt;';strFrame += ' &lt;table border=0 cellspacing=1 cellpadding=0 width=100% bgcolor=#FFFFFF height=22 &gt;';strFrame += ' &lt;tr bgcolor="#63A3E9"&gt;&lt;td id=bUseTimeLayer width=30 style="cursor:hand" mce_style="cursor:hand" title="点击这里启用/禁用时间"';strFrame += 'onmouseover="style.backgroundColor=/'#aaccf3/'" align=center onmouseout="style.backgroundColor=/'#63A3E9/'"';strFrame += ' onclick="parent.UseTime(this)"&gt;';strFrame += ' &lt;span&gt;&lt;/span&gt;&lt;/td&gt;';strFrame += ' &lt;td style="cursor:hand" mce_style="cursor:hand" onclick="parent.tmpSelectHourInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';strFrame += ' onmouseover="style.backgroundColor=/'#aaccf3/'" onmouseout="style.backgroundColor=/'#63A3E9/'"';strFrame += ' title="点击这里选择时间" align=center width=42&gt;';strFrame += '&lt;span id=meizzHourHead&gt;&lt;/span&gt;&lt;/td&gt;';strFrame += ' &lt;td style="cursor:hand" mce_style="cursor:hand" onclick="parent.tmpSelectMinuteInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';strFrame += ' onmouseover="style.backgroundColor=/'#aaccf3/'" onmouseout="style.backgroundColor=/'#63A3E9/'"';strFrame += ' title="点击这里选择时间" align=center width=42&gt;';strFrame += '&lt;span id=meizzMinuteHead&gt;&lt;/span&gt;&lt;/td&gt;';strFrame += ' &lt;td style="cursor:hand" mce_style="cursor:hand" onclick="parent.tmpSelectSecondInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';strFrame += ' onmouseover="style.backgroundColor=/'#aaccf3/'" onmouseout="style.backgroundColor=/'#63A3E9/'"';strFrame += ' title="点击这里选择时间" align=center width=42&gt;';strFrame += '&lt;span id=meizzSecondHead&gt;&lt;/span&gt;&lt;/td&gt;';strFrame += ' &lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;';//window.frames.endDateLayer.document.writeln(strFrame);//window.frames.endDateLayer.document.close();//解决ie进度条不结束的问题if (document.all) { window.frames.endDateLayer.document.writeln(strFrame); window.frames.endDateLayer.document.close(); //解决ie进度条不结束的问题} else { document.getElementById("endDateLayer").contentDocument.writeln(strFrame); document.getElementById("endDateLayer").contentDocument.close();}//==================================================== WEB 页面显示部分 ======================================================var outObject;var outButton; //点击的按钮var outDate = ""; //存放对象的日期var bUseTime = false; //是否使用时间var odatelayer = window.frames.endDateLayer.document.all; //存放日历对象var odatelayer = window.endDateLayer.document.all;//odatelayer.bUseTimeLayer.innerText="NO";bImgSwitch();odatelayer.bUseTimeLayer.innerHTML = bImg;function setday(tt, obj) //主调函数{ if (arguments.length &gt; 2) { alert("对不起!传入本控件的参数太多!"); return; } if (arguments.length == 0) { alert("对不起!您没有传回本控件任何参数!"); return; } var dads = document.all.endDateLayer.style; var th = tt; var ttop = tt.offsetTop; //TT控件的定位点高 var thei = tt.clientHeight; //TT控件本身的高 var tleft = tt.offsetLeft; //TT控件的定位点宽 var ttyp = tt.type; //TT控件的类型 while (tt = tt.offsetParent) { ttop += tt.offsetTop; tleft += tt.offsetLeft; } dads.top = (ttyp == "image") ? ttop + thei : ttop + thei + 6; dads.left = tleft; outObject = (arguments.length == 1) ? th : obj; outButton = (arguments.length == 1) ? null : th; //设定外部点击的按钮 //根据当前输入框的日期显示日历的年月 var reg = /^(/d+)-(/d{1,2})-(/d{1,2})/; //不含时间 var r = outObject.value.match(reg); if (r != null) { r[2] = r[2] - 1; var d = new Date(r[1], r[2], r[3]); if (d.getFullYear() == r[1] &amp;&amp; d.getMonth() == r[2] &amp;&amp; d.getDate() == r[3]) { outDate = d; parent.meizzTheYear = r[1]; parent.meizzTheMonth = r[2]; parent.meizzTheDate = r[3]; } else { outDate = ""; } meizzSetDay(r[1], r[2] + 1); } else { outDate = ""; meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1); } dads.display = ''; //判断初始化时是否使用时间,非严格验证 //if (outObject.value.length&gt;10) //{ bUseTime = true; bImgSwitch(); odatelayer.bUseTimeLayer.innerHTML = bImg; meizzWriteHead(meizzTheYear, meizzTheMonth); //} //else //{ //bUseTime=false; //bImgSwitch(); //odatelayer.bUseTimeLayer.innerHTML=bImg; //meizzWriteHead(meizzTheYear,meizzTheMonth); //} try { event.returnValue = false; } catch (e) { //此处排除错误,错误原因暂未找到。 }}var MonHead = new Array(12); //定义阳历中每个月的最大天数MonHead[0] = 31; MonHead[1] = 28; MonHead[2] = 31; MonHead[3] = 30; MonHead[4] = 31; MonHead[5] = 30;MonHead[6] = 31; MonHead[7] = 31; MonHead[8] = 30; MonHead[9] = 31; MonHead[10] = 30; MonHead[11] = 31;var meizzTheYear = new Date().getFullYear(); //定义年的变量的初始值var meizzTheMonth = new Date().getMonth() + 1; //定义月的变量的初始值var meizzTheDate = new Date().getDate(); //定义日的变量的初始值var meizzTheHour = new Date().getHours(); //定义小时变量的初始值var meizzTheMinute = new Date().getMinutes(); //定义分钟变量的初始值var meizzTheSecond = new Date().getSeconds(); //定义秒变量的初始值var meizzWDay = new Array(37); //定义写日期的数组function document.onclick() //任意点击时关闭该控件//ie6的情况可以由下面的切换焦点处理代替{ with (window.event) { if (srcElement != outObject &amp;&amp; srcElement != outButton) closeLayer(); }}function document.onkeyup()//按Esc键关闭,切换焦点关闭{ if (window.event.keyCode == 27) { if (outObject) outObject.blur(); closeLayer(); } else if (document.activeElement) { if (document.activeElement != outObject &amp;&amp; document.activeElement != outButton) { closeLayer(); } }}function meizzWriteHead(yy, mm, ss)//往 head 中写入当前的年与月{ odatelayer.meizzYearHead.innerText = yy + " 年"; odatelayer.meizzMonthHead.innerText = format(mm) + " 月"; //插入当前小时、分 odatelayer.meizzHourHead.innerText = bUseTime ? (meizzTheHour + " 时") : ""; odatelayer.meizzMinuteHead.innerText = bUseTime ? (meizzTheMinute + " 分") : ""; odatelayer.meizzSecondHead.innerText = bUseTime ? (meizzTheSecond + " 秒") : "";}function tmpSelectYearInnerHTML(strYear) //年份的下拉框{ if (strYear.match(//D/) != null) { alert("年份输入参数不是数字!"); return; } var m = (strYear) ? strYear : new Date().getFullYear(); if (m &lt; 1000 || m &gt; 9999) { alert("年份值不在 1000 到 9999 之间!"); return; } var n = m - 50; if (n &lt; 1000) n = 1000; if (n + 101 &gt; 9999) n = 9974; var s = "&nbsp;&lt;select name=tmpSelectYear style="font-size: 12px" mce_style="font-size: 12px" " s += "onblur='document.all.tmpSelectYearLayer.style.display=/"none/"' " s += "onchange='document.all.tmpSelectYearLayer.style.display=/"none/";" s += "parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'&gt;/r/n"; var selectInnerHTML = s; for (var i = n; i &lt; n + 101; i++) { if (i == m) { selectInnerHTML += "&lt;option value='" + i + "' selected&gt;" + i + "年" + "&lt;/option&gt;/r/n"; } else { selectInnerHTML += "&lt;option value='" + i + "'&gt;" + i + "年" + "&lt;/option&gt;/r/n"; } } selectInnerHTML += "&lt;/select&gt;"; odatelayer.tmpSelectYearLayer.style.display = ""; odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectYear.focus();}function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框{ if (strMonth.match(//D/) != null) { alert("月份输入参数不是数字!"); return; } var m = (strMonth) ? strMonth : new Date().getMonth() + 1; var s = "&nbsp;&nbsp;&nbsp;&lt;select name=tmpSelectMonth style="font-size: 12px" mce_style="font-size: 12px" " s += "onblur='document.all.tmpSelectMonthLayer.style.display=/"none/"' " s += "onchange='document.all.tmpSelectMonthLayer.style.display=/"none/";" s += "parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'&gt;/r/n"; var selectInnerHTML = s; for (var i = 1; i &lt; 13; i++) { if (i == m) { selectInnerHTML += "&lt;option value='" + i + "' selected&gt;" + i + "月" + "&lt;/option&gt;/r/n"; } else { selectInnerHTML += "&lt;option value='" + i + "'&gt;" + i + "月" + "&lt;/option&gt;/r/n"; } } selectInnerHTML += "&lt;/select&gt;"; odatelayer.tmpSelectMonthLayer.style.display = ""; odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectMonth.focus();}/***** 增加 小时、分钟 ***/function tmpSelectHourInnerHTML(strHour) //小时的下拉框{ if (!bUseTime) { return; } if (strHour.match(//D/) != null) { alert("小时输入参数不是数字!"); return; } var m = (strHour) ? strHour : new Date().getHours(); var s = "&lt;select name=tmpSelectHour style="font-size: 12px" mce_style="font-size: 12px" " s += "onblur='document.all.tmpSelectHourLayer.style.display=/"none/"' " s += "onchange='document.all.tmpSelectHourLayer.style.display=/"none/";" s += "parent.meizzTheHour = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute);'&gt;/r/n"; var selectInnerHTML = s; for (var i = 0; i &lt; 24; i++) { if (i == m) { selectInnerHTML += "&lt;option value='" + i + "' selected&gt;" + i + "&lt;/option&gt;/r/n"; } else { selectInnerHTML += "&lt;option value='" + i + "'&gt;" + i + "&lt;/option&gt;/r/n"; } } selectInnerHTML += "&lt;/select&gt;"; odatelayer.tmpSelectHourLayer.style.display = ""; odatelayer.tmpSelectHourLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectHour.focus();}function tmpSelectMinuteInnerHTML(strMinute) //分钟的下拉框{ if (!bUseTime) { return; } if (strMinute.match(//D/) != null) { alert("分钟输入参数不是数字!"); return; } var m = (strMinute) ? strMinute : new Date().getMinutes(); var s = "&lt;select name=tmpSelectMinute style="font-size: 12px" mce_style="font-size: 12px" " s += "onblur='document.all.tmpSelectMinuteLayer.style.display=/"none/"' " s += "onchange='document.all.tmpSelectMinuteLayer.style.display=/"none/";" s += "parent.meizzTheMinute = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute);'&gt;/r/n"; var selectInnerHTML = s; for (var i = 0; i &lt; 60; i++) { if (i == m) { selectInnerHTML += "&lt;option value='" + i + "' selected&gt;" + i + "&lt;/option&gt;/r/n"; } else { selectInnerHTML += "&lt;option value='" + i + "'&gt;" + i + "&lt;/option&gt;/r/n"; } } selectInnerHTML += "&lt;/select&gt;"; odatelayer.tmpSelectMinuteLayer.style.display = ""; odatelayer.tmpSelectMinuteLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectMinute.focus();}function tmpSelectSecondInnerHTML(strSecond) //秒的下拉框{ if (!bUseTime) { return; } if (strSecond.match(//D/) != null) { alert("分钟输入参数不是数字!"); return; } var m = (strSecond) ? strSecond : new Date().getMinutes(); var s = "&lt;select name=tmpSelectSecond style="font-size: 12px" mce_style="font-size: 12px" " s += "onblur='document.all.tmpSelectSecondLayer.style.display=/"none/"' " s += "onchange='document.all.tmpSelectSecondLayer.style.display=/"none/";" s += "parent.meizzTheSecond = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute,parent.meizzTheSecond);'&gt;/r/n"; var selectInnerHTML = s; for (var i = 0; i &lt; 60; i++) { if (i == m) { selectInnerHTML += "&lt;option value='" + i + "' selected&gt;" + i + "&lt;/option&gt;/r/n"; } else { selectInnerHTML += "&lt;option value='" + i + "'&gt;" + i + "&lt;/option&gt;/r/n"; } } selectInnerHTML += "&lt;/select&gt;"; odatelayer.tmpSelectSecondLayer.style.display = ""; odatelayer.tmpSelectSecondLayer.innerHTML = selectInnerHTML; odatelayer.tmpSelectSecond.focus();}function closeLayer()//这个层的关闭{ var o = document.getElementById("endDateLayer"); if (o != null) { o.style.display = "none"; }}function showLayer()//这个层的关闭{ document.all.endDateLayer.style.display = "";}function IsPinYear(year)//判断是否闰平年{ if (0 == year % 4 &amp;&amp; ((year % 100 != 0) || (year % 400 == 0))) return true; else return false;}function GetMonthCount(year, month)//闰年二月为29天{ var c = MonHead[month - 1]; if ((month == 2) &amp;&amp; IsPinYear(year)) c++; return c;}function GetDOW(day, month, year)//求某天的星期几{ var dt = new Date(year, month - 1, day).getDay() / 7; return dt;}function meizzPrevY()//往前翻 Year{ if (meizzTheYear &gt; 999 &amp;&amp; meizzTheYear &lt; 10000) { meizzTheYear--; } else { alert("年份超出范围(1000-9999)!"); } meizzSetDay(meizzTheYear, meizzTheMonth);}function meizzNextY()//往后翻 Year{ if (meizzTheYear &gt; 999 &amp;&amp; meizzTheYear &lt; 10000) { meizzTheYear++; } else { alert("年份超出范围(1000-9999)!"); } meizzSetDay(meizzTheYear, meizzTheMonth);}function setNull() { outObject.value = ''; closeLayer();}function meizzToday()//Today Button{ parent.meizzTheYear = new Date().getFullYear(); parent.meizzTheMonth = new Date().getMonth() + 1; parent.meizzTheDate = new Date().getDate(); parent.meizzTheHour = new Date().getHours(); parent.meizzTheMinute = new Date().getMinutes(); parent.meizzTheSecond = new Date().getSeconds(); var meizzTheSecond = new Date().getSeconds(); if (meizzTheMonth &lt; 10 &amp;&amp; meizzTheMonth.length &lt; 2)//格式化成两位数字 { parent.meizzTheMonth = "0" + parent.meizzTheMonth; } if (parent.meizzTheDate &lt; 10 &amp;&amp; parent.meizzTheDate.length &lt; 2)//格式化成两位数字 { parent.meizzTheDate = "0" + parent.meizzTheDate; } //meizzSetDay(meizzTheYear,meizzTheMonth); if (outObject) { if (bUseTime) { outObject.value = parent.meizzTheYear + "-" + format(parent.meizzTheMonth) + "-" +format(parent.meizzTheDate) + " " + format(parent.meizzTheHour) + ":" +format(parent.meizzTheMinute) + ":" + format(parent.meizzTheSecond); //注:在这里你可以输出改成你想要的格式 } else { outObject.value = parent.meizzTheYear + "-" + format(parent.meizzTheMonth) + "-" +format(parent.meizzTheDate); //注:在这里你可以输出改成你想要的格式 } } closeLayer();}function meizzPrevM()//往前翻月份{ if (meizzTheMonth &gt; 1) { meizzTheMonth-- } else { meizzTheYear--; meizzTheMonth = 12; } meizzSetDay(meizzTheYear, meizzTheMonth);}function meizzNextM()//往后翻月份{ if (meizzTheMonth == 12) { meizzTheYear++; meizzTheMonth = 1 } else { meizzTheMonth++ } meizzSetDay(meizzTheYear, meizzTheMonth);}// TODO: 整理代码function meizzSetDay(yy, mm)//主要的写程序**********{ meizzWriteHead(yy, mm); //设置当前年月的公共变量为传入值 meizzTheYear = yy; meizzTheMonth = mm; for (var i = 0; i &lt; 37; i++) { meizzWDay[i] = "" }; //将显示框的内容全部清空 var day1 = 1, day2 = 1, firstday = new Date(yy, mm - 1, 1).getDay(); //某月第一天的星期几 for (i = 0; i &lt; firstday; i++) meizzWDay[i] = GetMonthCount(mm == 1 ? yy - 1 : yy, mm == 1 ? 12 : mm - 1) - firstday + i + 1//上个月的最后几天 for (i = firstday; day1 &lt; GetMonthCount(yy, mm) + 1; i++) { meizzWDay[i] = day1; day1++; } for (i = firstday + GetMonthCount(yy, mm); i &lt; 37; i++) { meizzWDay[i] = day2; day2++; } for (i = 0; i &lt; 37; i++) { var da = eval("odatelayer.meizzDay" + i)//书写新的一个月的日期星期排列 if (meizzWDay[i] != "") { //初始化边框 da.borderColorLight = "#63A3E9"; da.borderColorDark = "#63A3E9"; da.style.color = "#1478eb"; if (i &lt; firstday)//上个月的部分 { da.innerHTML = "&lt;b&gt;&lt;font color=#BCBABC&gt;" + meizzWDay[i] + "&lt;/font&gt;&lt;/b&gt;"; da.title = (mm == 1 ? 12 : mm - 1) + "月" + meizzWDay[i] + "日"; da.onclick = Function("meizzDayClick(this.innerText,-1)"); if (!outDate) da.style.backgroundColor = ((mm == 1 ? yy - 1 : yy) == new Date().getFullYear() &amp;&amp;(mm == 1 ? 12 : mm - 1) == new Date().getMonth() + 1 &amp;&amp; meizzWDay[i] == new Date().getDate()) ? "#5CEFA0" : "#f5f5f5"; else { da.style.backgroundColor = ((mm == 1 ? yy - 1 : yy) == outDate.getFullYear() &amp;&amp; (mm == 1 ? 12 : mm - 1) == outDate.getMonth() + 1 &amp;&amp;meizzWDay[i] == outDate.getDate()) ? "#84C1FF" :(((mm == 1 ? yy - 1 : yy) == new Date().getFullYear() &amp;&amp; (mm == 1 ? 12 : mm - 1) == new Date().getMonth() + 1 &amp;&amp;meizzWDay[i] == new Date().getDate()) ? "#5CEFA0" : "#f5f5f5"); //将选中的日期显示为凹下去 if ((mm == 1 ? yy - 1 : yy) == outDate.getFullYear() &amp;&amp; (mm == 1 ? 12 : mm - 1) == outDate.getMonth() + 1 &amp;&amp;meizzWDay[i] == outDate.getDate()) { da.borderColorLight = "#FFFFFF"; da.borderColorDark = "#63A3E9"; } } } else if (i &gt;= firstday + GetMonthCount(yy, mm))//下个月的部分 { da.innerHTML = "&lt;b&gt;&lt;font color=#BCBABC&gt;" + meizzWDay[i] + "&lt;/font&gt;&lt;/b&gt;"; da.title = (mm == 12 ? 1 : mm + 1) + "月" + meizzWDay[i] + "日"; da.onclick = Function("meizzDayClick(this.innerText,1)"); if (!outDate) da.style.backgroundColor = ((mm == 12 ? yy + 1 : yy) == new Date().getFullYear() &amp;&amp;(mm == 12 ? 1 : mm + 1) == new Date().getMonth() + 1 &amp;&amp; meizzWDay[i] == new Date().getDate()) ? "#5CEFA0" : "#f5f5f5"; else { da.style.backgroundColor = ((mm == 12 ? yy + 1 : yy) == outDate.getFullYear() &amp;&amp; (mm == 12 ? 1 : mm + 1) == outDate.getMonth() + 1 &amp;&amp;meizzWDay[i] == outDate.getDate()) ? "#84C1FF" :(((mm == 12 ? yy + 1 : yy) == new Date().getFullYear() &amp;&amp; (mm == 12 ? 1 : mm + 1) == new Date().getMonth() + 1 &amp;&amp;meizzWDay[i] == new Date().getDate()) ? "#5CEFA0" : "#f5f5f5"); //将选中的日期显示为凹下去 if ((mm == 12 ? yy + 1 : yy) == outDate.getFullYear() &amp;&amp; (mm == 12 ? 1 : mm + 1) == outDate.getMonth() + 1 &amp;&amp;meizzWDay[i] == outDate.getDate()) { da.borderColorLight = "#FFFFFF"; da.borderColorDark = "#63A3E9"; } } } else//本月的部分 { da.innerHTML = "&lt;b&gt;" + meizzWDay[i] + "&lt;/b&gt;"; da.title = mm + "月" + meizzWDay[i] + "日"; da.onclick = Function("meizzDayClick(this.innerText,0)"); //给td赋予onclick事件的处理 //如果是当前选择的日期,则显示亮蓝色的背景;如果是当前日期,则显示暗黄色背景 if (!outDate) da.style.backgroundColor = (yy == new Date().getFullYear() &amp;&amp; mm == new Date().getMonth() + 1 &amp;&amp; meizzWDay[i] == new Date().getDate()) ?"#5CEFA0" : "#f5f5f5"; else { da.style.backgroundColor = (yy == outDate.getFullYear() &amp;&amp; mm == outDate.getMonth() + 1 &amp;&amp; meizzWDay[i] == outDate.getDate()) ?"#84C1FF" : ((yy == new Date().getFullYear() &amp;&amp; mm == new Date().getMonth() + 1 &amp;&amp; meizzWDay[i] == new Date().getDate()) ?"#5CEFA0" : "#f5f5f5"); //将选中的日期显示为凹下去 if (yy == outDate.getFullYear() &amp;&amp; mm == outDate.getMonth() + 1 &amp;&amp; meizzWDay[i] == outDate.getDate()) { da.borderColorLight = "#FFFFFF"; da.borderColorDark = "#63A3E9"; } } } da.style.cursor = "hand" } else { da.innerHTML = ""; da.style.backgroundColor = ""; da.style.cursor = "default"; } } }function meizzDayClick(n, ex)//点击显示框选取日期,主输入函数*************{ parent.meizzTheDate = n; var yy = meizzTheYear; var mm = parseInt(meizzTheMonth) + ex; //ex表示偏移量,用于选择上个月份和下个月份的日期 var hh = meizzTheHour; var mi = meizzTheMinute; var se = meizzTheSecond; //判断月份,并进行对应的处理 if (mm &lt; 1) { yy--; mm = 12 + mm; } else if (mm &gt; 12) { yy++; mm = mm - 12; } if (mm &lt; 10) { mm = "0" + mm; } if (hh &lt; 10) { hh = "0" + hh; } //时 if (mi &lt; 10) { mi = "0" + mi; } //分 if (se &lt; 10) { se = "0" + se; } //秒 if (outObject) { if (!n) {//outObject.value=""; return; } if (n &lt; 10) { n = "0" + n; } WriteDateTo(yy, mm, n, hh, mi, se); closeLayer();// if (bUseTime) {// try {// outButton.click();// }// catch (e) {// setday(outObject);// }// } } else { closeLayer(); alert("您所要输出的控件对象并不存在!"); }}function format(n)//格式化数字为两位字符表示{ var m = new String(); var tmp = new String(n); if (n &lt; 10 &amp;&amp; tmp.length &lt; 2) { m = "0" + n; } else { m = n; } return m;}function evaSetTime()//设置用户选择的小时、分钟{ odatelayer.meizzHourHead.innerText = meizzTheHour + " 时"; odatelayer.meizzMinuteHead.innerText = meizzTheMinute + " 分"; odatelayer.meizzSecondHead.innerText = meizzTheSecond + " 秒"; WriteDateTo(meizzTheYear, meizzTheMonth, meizzTheDate, meizzTheHour, meizzTheMinute, meizzTheSecond)}function evaSetTimeNothing()//设置时间控件为空{ odatelayer.meizzHourHead.innerText = ""; odatelayer.meizzMinuteHead.innerText = ""; odatelayer.meizzSecondHead.innerText = ""; WriteDateTo(meizzTheYear, meizzTheMonth, meizzTheDate, meizzTheHour, meizzTheMinute, meizzTheSecond)}function evaSetTimeNow()//设置时间控件为当前时间{ odatelayer.meizzHourHead.innerText = new Date().getHours() + " 时"; odatelayer.meizzMinuteHead.innerText = new Date().getMinutes() + " 分"; odatelayer.meizzSecondHead.innerText = new Date().getSeconds() + " 秒"; meizzTheHour = new Date().getHours(); meizzTheMinute = new Date().getMinutes(); meizzTheSecond = new Date().getSeconds(); WriteDateTo(meizzTheYear, meizzTheMonth, meizzTheDate, meizzTheHour, meizzTheMinute, meizzTheSecond)}function UseTime(ctl) { bUseTime = !bUseTime; if (bUseTime) { bImgSwitch(); ctl.innerHTML = bImg; evaSetTime(); //显示时间,用户原来选择的时间 //evaSetTimeNow();//显示当前时间 } else { bImgSwitch(); ctl.innerHTML = bImg; evaSetTimeNothing(); }}function WriteDateTo(yy, mm, n, hh, mi, se) { if (bUseTime) { outObject.value= yy + "-" + format(mm) + "-" + format(n) + " " + format(hh) + ":" + format(mi) + ":" + format(se); //注:在这里你可以输出改成你想要的格式 //outObject.value = yy + "-" + format(mm) + "-" + format(n); //注:在这里你可以输出改成你想要的格式 } else { outObject.value= yy + "-" + format(mm) + "-" + format(n) + " " + format(hh) + ":" + format(mi) + ":" + format(se); //注:在这里你可以输出改成你想要的格式 // outObject.value = yy + "-" + format(mm) + "-" + format(n); //注:在这里你可以输出改成你想要的格式 }}function bImgSwitch() { if (bUseTime) { bImg = "开启"; } else { bImg = "关闭"; }}</textarea>

 

 

【calendar()】

<textarea cols="50" rows="15" name="code" class="javascript:collapse">&lt;!--/* 调用方法: &lt;input onfocus="calendar()" name="s2" type="text" id="s2" style="width:100%;" /&gt;*/var cal_Width = 180;//定义日历显示的宽度,至少140document.write("&lt;div id='meizzCalendarLayer' style='position: absolute; z-index:9999999999; width: " + (cal_Width+4).toString() + "px; height: 193px; display: none'&gt;");document.write("&lt;iframe name='meizzCalendarIframe' scrolling='no' frameborder='0' width='100%' height='100%'&gt;&lt;/iframe&gt;&lt;/div&gt;");var WebCalendar = new WebCalendar();function document.onclick(){ if(WebCalendar.eventSrc != window.event.srcElement) hiddenCalendar();}function WebCalendar() //初始化日历的设置{ this.regInfo = "WEB Calendar ver 3.0&amp;#13;关闭的快捷键:[Esc]"; this.dayShow = 38; //定义页面上要显示的天数,不能小于35,或大于39 this.daysMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); this.day = new Array(this.dayShow); //定义日历展示用的数组 this.dayObj = new Array(this.dayShow); //定义日期展示控件数组 this.dateStyle = null; //保存格式化后日期数组 this.objExport = null; //日历回传的显示控件 this.eventSrc = null; //日历显示的触发控件 this.inputDate = null; //转化外的输入的日期(d/m/yyyy) this.thisYear = new Date().getFullYear(); //定义年的变量的初始值 this.thisMonth = new Date().getMonth()+ 1; //定义月的变量的初始值 this.thisDay = new Date().getDate(); //定义日的变量的初始值 this.today = this.thisDay +"/"+ this.thisMonth +"/"+ this.thisYear; //今天(d/m/yyyy) this.iframe = window.frames("meizzCalendarIframe"); //日历的 iframe 载体 this.calendar = getObjectById("meizzCalendarLayer"); //日历的层 this.dateReg = ""; //日历格式验证的正则式 this.yearFall = 70; //定义显示的年份下拉框的年差值,如果今年是2000年,这里设置为50,就显示1950-2050 this.format = "yyyy-mm-dd"; //回传日期的格式 this.timeShow = false; //是否返回时间 this.drag = true; //是否允许拖动 this.darkColor = "#95B7F3"; //控件的暗色 this.lightColor = "#FFFFFF"; //控件的亮色 this.btnBgColor = "#E6E6FA"; //控件的按钮背景色 this.wordColor = "#000080"; //控件的文字颜色 this.wordDark = "#DCDCDC"; //控件的暗文字颜色 this.dayBgColor = "#F5F5FA"; //日期数字背景色 this.todayColor = "#FF0000"; //今天在日历上的标示背景色 this.DarkBorder = "#D4D0C8"; //日期显示的立体表达色 this.yearOption = ""; var yearNow = new Date().getFullYear(); yearNow = (yearNow &lt;= 1000)? 1000 : ((yearNow &gt;= 9999)? 9999 : yearNow); var yearMin = (yearNow - this.yearFall &gt;= 1000) ? yearNow - this.yearFall : 1000; var yearMax = (yearNow + this.yearFall &lt;= 9999) ? yearNow + this.yearFall : 9999; yearMin = (yearMax == 9999) ? yearMax-this.yearFall*2 : yearMin; yearMax = (yearMin == 1000) ? yearMin+this.yearFall*2 : yearMax; for (var i=yearMin; i&lt;=yearMax; i++) this.yearOption += "&lt;option value='"+i+"'&gt;"+i+"年&lt;/option&gt;";} function writeIframe(){ var strIframe = "&lt;html&gt;&lt;head&gt;&lt;meta http-equiv='Content-Type' content='text/html; charset=gb2312'&gt;&lt;mce:style&gt;&lt;!--"+ "*{font-size: 12px; font-family: 宋体}"+ ".bg{ color: "+ WebCalendar.lightColor +"; cursor: default; background-color: "+ WebCalendar.darkColor +";}"+ "table#tableMain{ width: "+ (cal_Width+2).toString() +"px; height: 180px;}"+ "table#tableWeek td{ width:14%;color: "+ WebCalendar.lightColor +";}"+ "table#tableDay td{ width:14%;font-weight: bold;}"+ "td#meizzYearHead, td#meizzYearMonth{color: "+ WebCalendar.wordColor +"}"+ ".out { text-align: center; border-top: 1px solid "+ WebCalendar.DarkBorder +"; border-left: 1px solid "+ WebCalendar.DarkBorder +";"+ "border-right: 1px solid "+ WebCalendar.lightColor +"; border-bottom: 1px solid "+ WebCalendar.lightColor +";}"+ ".over{ text-align: center; border-top: 1px solid #FFFFFF; border-left: 1px solid #FFFFFF;"+ "border-bottom: 1px solid "+ WebCalendar.DarkBorder +"; border-right: 1px solid "+ WebCalendar.DarkBorder +"}"+ "input{ border: 1px solid "+ WebCalendar.darkColor +"; padding-top: 1px; height: 18px; cursor: hand;"+ " color:"+ WebCalendar.wordColor +"; background-color: "+ WebCalendar.btnBgColor +"}"+ "--&gt;&lt;/mce:style&gt;&lt;style mce_bogus="1"&gt;"+ "*{font-size: 12px; font-family: 宋体}"+ ".bg{ color: "+ WebCalendar.lightColor +"; cursor: default; background-color: "+ WebCalendar.darkColor +";}"+ "table#tableMain{ width: "+ (cal_Width+2).toString() +"px; height: 180px;}"+ "table#tableWeek td{ width:14%;color: "+ WebCalendar.lightColor +";}"+ "table#tableDay td{ width:14%;font-weight: bold;}"+ "td#meizzYearHead, td#meizzYearMonth{color: "+ WebCalendar.wordColor +"}"+ ".out { text-align: center; border-top: 1px solid "+ WebCalendar.DarkBorder +"; border-left: 1px solid "+ WebCalendar.DarkBorder +";"+ "border-right: 1px solid "+ WebCalendar.lightColor +"; border-bottom: 1px solid "+ WebCalendar.lightColor +";}"+ ".over{ text-align: center; border-top: 1px solid #FFFFFF; border-left: 1px solid #FFFFFF;"+ "border-bottom: 1px solid "+ WebCalendar.DarkBorder +"; border-right: 1px solid "+ WebCalendar.DarkBorder +"}"+ "input{ border: 1px solid "+ WebCalendar.darkColor +"; padding-top: 1px; height: 18px; cursor: hand;"+ " color:"+ WebCalendar.wordColor +"; background-color: "+ WebCalendar.btnBgColor +"}"+ "&lt;/style&gt;&lt;/head&gt;&lt;body onselectstart='return false' style="margin: 0px" mce_style="margin: 0px" oncontextmenu='return false'&gt;&lt;form name=meizz&gt;"; if (WebCalendar.drag){ strIframe += "&lt;scr"+"ipt language=javascript&gt;"+ "var drag=false, cx=0, cy=0, o = parent.WebCalendar.calendar; function document.onmousemove(){"+ "if(parent.WebCalendar.drag &amp;&amp; drag){if(o.style.left=='')o.style.left=0; if(o.style.top=='')o.style.top=0;"+ "o.style.left = parseInt(o.style.left) + window.event.clientX-cx;"+ "o.style.top = parseInt(o.style.top) + window.event.clientY-cy;}}"+ "function document.onkeydown(){ switch(window.event.keyCode){ case 27 : parent.hiddenCalendar(); break;"+ "case 37 : parent.prevM(); break; case 38 : parent.prevY(); break; case 39 : parent.nextM(); break; case 40 : parent.nextY(); break;"+ "case 84 : document.forms[0].today.click(); break;} " + "try{window.event.keyCode = 0; window.event.returnValue= false;}catch(ee){}}"+ "function dragStart(){cx=window.event.clientX; cy=window.event.clientY; drag=true;}&lt;/scr"+"ipt&gt;"} strIframe += "&lt;table id=tableMain class=bg border=0 cellspacing=2 cellpadding=0&gt;"+ "&lt;tr&gt;&lt;td width='"+ cal_Width +"px' height='19px' bgcolor='"+ WebCalendar.lightColor +"'&gt;"+ " &lt;table width='"+ cal_Width +"px' id='tableHead' border='0' cellspacing='1' cellpadding='0'&gt;&lt;tr align='center'&gt;"+ " &lt;td width='10%' height='19px' class='bg' title='向前翻 1 月快捷键:&larr;' style="cursor: hand" mce_style="cursor: hand" onclick='parent.prevM()'&gt;&lt;b&gt;&lt;&lt;/b&gt;&lt;/td&gt;"+ " &lt;td width='45%' id=meizzYearHead "+ " onmouseover='this.bgColor=parent.WebCalendar.darkColor; this.style.color=parent.WebCalendar.lightColor'"+ " onmouseout='this.bgColor=parent.WebCalendar.lightColor; this.style.color=parent.WebCalendar.wordColor'&gt;" + "&lt;select name=tmpYearSelect onblur='parent.hiddenSelect(this)' style='width:100%;'"+ " onchange='parent.WebCalendar.thisYear =this.value; parent.hiddenSelect(this); parent.writeCalendar();'&gt;"; // var yearNow = new Date().getFullYear();// yearNow = (yearNow &lt;= 1000)? 1000 : ((yearNow &gt;= 9999)? 9999 : yearNow);// var yearMin = (yearNow - WebCalendar.yearFall &gt;= 1000) ? yearNow - WebCalendar.yearFall : 1000;// var yearMax = (yearNow + WebCalendar.yearFall &lt;= 9999) ? yearNow + WebCalendar.yearFall : 9999;// yearMin = (yearMax == 9999) ? yearMax-WebCalendar.yearFall*2 : yearMin;// yearMax = (yearMin == 1000) ? yearMin+WebCalendar.yearFall*2 : yearMax;// for (var i=yearMin; i&lt;=yearMax; i++) strIframe += "&lt;option value='"+i+"'&gt;"+i+"年&lt;/option&gt;"; strIframe += WebCalendar.yearOption + "&lt;/select&gt;"+ "&lt;/td&gt;"+ " &lt;td width='35%' id=meizzYearMonth "+ " onmouseover='this.bgColor=parent.WebCalendar.darkColor; this.style.color=parent.WebCalendar.lightColor'"+ " onmouseout='this.bgColor=parent.WebCalendar.lightColor; this.style.color=parent.WebCalendar.wordColor'&gt;" + "&lt;select name=tmpMonthSelect onblur='parent.hiddenSelect(this)' style='width:100%;'" + " onchange='parent.WebCalendar.thisMonth=this.value; parent.hiddenSelect(this); parent.writeCalendar();'&gt;"; for (var i=1; i&lt;13; i++) strIframe += "&lt;option value='"+i+"'&gt;"+i+"月&lt;/option&gt;"; strIframe += "&lt;/select&gt;"+ "&lt;/td&gt;"+ " &lt;td width='10%' class=bg title='向后翻 1 月快捷键:&rarr;' onclick='parent.nextM()' style="cursor: hand" mce_style="cursor: hand"&gt;&lt;b&gt;&gt;&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;"+ "&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height='20px'&gt;"+ "&lt;table id=tableWeek border=1 width='"+ cal_Width +"px' cellpadding=0 cellspacing=0 "; if(WebCalendar.drag){strIframe += "onmousedown='dragStart()' onmouseup='drag=false' ";} strIframe += " borderColorLight='"+ WebCalendar.darkColor +"' borderColorDark='"+ WebCalendar.lightColor +"'&gt;"+ " &lt;tr align=center&gt;&lt;td height='20px'&gt;日&lt;/td&gt;&lt;td&gt;一&lt;/td&gt;&lt;td&gt;二&lt;/td&gt;&lt;td&gt;三&lt;/td&gt;&lt;td&gt;四&lt;/td&gt;&lt;td&gt;五&lt;/td&gt;&lt;td&gt;六&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;"+ "&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign=top width='"+ cal_Width +"px' bgcolor='"+ WebCalendar.lightColor +"'&gt;"+ " &lt;table id=tableDay height='120px' width='"+ cal_Width +"px' border=0 cellspacing=1 cellpadding=0&gt;"; for(var x=0; x&lt;5; x++){ strIframe += "&lt;tr&gt;"; for(var y=0; y&lt;7; y++) strIframe += "&lt;td class=out id='meizzDay"+ (x*7+y) +"'&gt;&lt;/td&gt;"; strIframe += "&lt;/tr&gt;"; } strIframe += "&lt;tr&gt;"; for(var x=35; x&lt;WebCalendar.dayShow; x++) strIframe += "&lt;td class=out id='meizzDay"+ x +"'&gt;&lt;/td&gt;"; strIframe +="&lt;td colspan="+(42-WebCalendar.dayShow).toString()+" class=out style="text-align:center;" mce_style="text-align:center;" title='"+ WebCalendar.regInfo +"'&gt;" + "&lt;input style=' background-color: " + WebCalendar.btnBgColor +";cursor: hand; padding-top: 2px; width: 44%; height: 100%;' onfocus='this.blur()'"+ " type=button value='清空' onclick='parent.WebCalendar.objExport.value=/"/";parent.hiddenCalendar()'&gt;" + "&nbsp;" + "&lt;input style=' background-color: " + WebCalendar.btnBgColor +";cursor: hand; padding-top: 2px; width: 43%; height: 100%;' onfocus='this.blur()'"+ " type=button value='关闭' onclick='parent.hiddenCalendar()'&gt;" + "&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;"+ "&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td height='20px' width='"+ cal_Width +"px' bgcolor='"+ WebCalendar.lightColor +"'&gt;"+ " &lt;table border=0 cellpadding=1 cellspacing=0 width='"+ cal_Width +"px'&gt;"+ " &lt;tr&gt;&lt;td&gt;&lt;input name=prevYear title='向前翻 1 年快捷键:&uarr;' onclick='parent.prevY()' type=button value='&lt;&lt;'"+ " onfocus='this.blur()' style="meizz:expression(this.disabled=parent.WebCalendar.thisYear==1000)" mce_style="meizz:expression(this.disabled=parent.WebCalendar.thisYear==1000)"&gt;&lt;input"+ " onfocus='this.blur()' name=prevMonth title='向前翻 1 月快捷键:&larr;' onclick='parent.prevM()' type=button value='&lt;&nbsp;'&gt;"+ " &lt;/td&gt;&lt;td align=center&gt;&lt;input name=today type=button value='Today' onfocus='this.blur()' style='width: 50px;' title='当前日期快捷键:T'"+ " onclick=/"parent.returnDate(new Date().getDate() +'/'+ (new Date().getMonth() +1) +'/'+ new Date().getFullYear())/"&gt;"+ " &lt;/td&gt;&lt;td align=right&gt;&lt;input title='向后翻 1 月快捷键:&rarr;' name=nextMonth onclick='parent.nextM()' type=button value='&nbsp;&gt;'"+ " onfocus='this.blur()'&gt;&lt;input name=nextYear title='向后翻 1 年快捷键:&darr;' onclick='parent.nextY()' type=button value='&gt;&gt;'"+ " onfocus='this.blur()' style="meizz:expression(this.disabled=parent.WebCalendar.thisYear==9999)" mce_style="meizz:expression(this.disabled=parent.WebCalendar.thisYear==9999)"&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;"+ "&lt;/td&gt;&lt;/tr&gt;&lt;table&gt;&lt;/form&gt;&lt;/body&gt;&lt;/html&gt;"; with(WebCalendar.iframe) { document.writeln(strIframe); document.close(); for(var i=0; i&lt;WebCalendar.dayShow; i++) { WebCalendar.dayObj[i] = eval("meizzDay"+ i); WebCalendar.dayObj[i].onmouseover = dayMouseOver; WebCalendar.dayObj[i].onmouseout = dayMouseOut; WebCalendar.dayObj[i].onclick = returnDate; } }}function calendar() //主调函数{ var e = window.event.srcElement; writeIframe(); var o = WebCalendar.calendar.style; WebCalendar.eventSrc = e;if (arguments.length == 0) WebCalendar.objExport = e; else WebCalendar.objExport = eval(arguments[0]); WebCalendar.iframe.tableWeek.style.cursor = WebCalendar.drag ? "move" : "default";var t = e.offsetTop, h = e.clientHeight, l = e.offsetLeft, p = e.type;while (e = e.offsetParent){t += e.offsetTop; l += e.offsetLeft;} o.display = ""; WebCalendar.iframe.document.body.focus(); var cw = WebCalendar.calendar.clientWidth, ch = WebCalendar.calendar.clientHeight; var dw = document.body.clientWidth, dl = document.body.scrollLeft, dt = document.body.scrollTop; if (document.body.clientHeight + dt - t - h &gt;= ch) o.top = (p=="image")? t + h : t + h + 6; else o.top = (t - dt &lt; ch) ? ((p=="image")? t + h : t + h + 6) : t - ch; if (dw + dl - l &gt;= cw) o.left = l; else o.left = (dw &gt;= cw) ? dw - cw + dl : dl; if (!WebCalendar.timeShow) WebCalendar.dateReg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/; else WebCalendar.dateReg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/; try{ if (WebCalendar.objExport.value.trim() != ""){ WebCalendar.dateStyle = WebCalendar.objExport.value.trim().match(WebCalendar.dateReg); if (WebCalendar.dateStyle == null) { WebCalendar.thisYear = new Date().getFullYear(); WebCalendar.thisMonth = new Date().getMonth()+ 1; WebCalendar.thisDay = new Date().getDate(); alert("原文本框里的日期有错误!/n可能与你定义的显示时分秒有冲突!"); writeCalendar(); return false; } else { WebCalendar.thisYear = parseInt(WebCalendar.dateStyle[1], 10); WebCalendar.thisMonth = parseInt(WebCalendar.dateStyle[3], 10); WebCalendar.thisDay = parseInt(WebCalendar.dateStyle[4], 10); WebCalendar.inputDate = parseInt(WebCalendar.thisDay, 10) +"/"+ parseInt(WebCalendar.thisMonth, 10) +"/"+ parseInt(WebCalendar.thisYear, 10); writeCalendar(); } } else { WebCalendar.thisYear = new Date().getFullYear(); WebCalendar.thisMonth = new Date().getMonth()+ 1; WebCalendar.thisDay = new Date().getDate(); writeCalendar(); } } catch(e) { WebCalendar.thisYear = new Date().getFullYear(); WebCalendar.thisMonth = new Date().getMonth()+ 1; WebCalendar.thisDay = new Date().getDate(); writeCalendar(); }}function funMonthSelect() //月份的下拉框{ var m = isNaN(parseInt(WebCalendar.thisMonth, 10)) ? new Date().getMonth() + 1 : parseInt(WebCalendar.thisMonth); var e = WebCalendar.iframe.document.forms[0].tmpMonthSelect; e.value = m; //e.focus(); //window.status = e.style.left;}function funYearSelect() //年份的下拉框{ var e = WebCalendar.iframe.document.forms[0].tmpYearSelect; var y = isNaN(parseInt(WebCalendar.thisYear, 10)) ? new Date().getFullYear() : parseInt(WebCalendar.thisYear); e.value = y; //e.focus();// if(e.value == "")// {// e.value = new Date().getFullYear();// WebCalendar.thisYear = e.value;// }}function prevM() //往前翻月份{ WebCalendar.thisDay = 1; if (WebCalendar.thisMonth==1) { WebCalendar.thisYear--; WebCalendar.thisMonth=13; } WebCalendar.thisMonth--; writeCalendar();}function nextM() //往后翻月份{ WebCalendar.thisDay = 1; if (WebCalendar.thisMonth==12) { WebCalendar.thisYear++; WebCalendar.thisMonth=0; } WebCalendar.thisMonth++; writeCalendar();}function prevY(){WebCalendar.thisDay = 1; WebCalendar.thisYear--; writeCalendar();}//往前翻 Yearfunction nextY(){WebCalendar.thisDay = 1; WebCalendar.thisYear++; writeCalendar();}//往后翻 Yearfunction hiddenSelect(e){ //for(var i=e.options.length; i&gt;-1; i--)e.options.remove(i); e.style.display="none";}function getObjectById(id){ if(document.all) return(eval("document.all."+ id)); return(eval(id)); }function hiddenCalendar(){getObjectById("meizzCalendarLayer").style.display = "none";};function appendZero(n){return(("00"+ n).substr(("00"+ n).length-2));}//日期自动补零程序function String.prototype.trim(){return this.replace(/(^/s*)|(/s*$)/g,"");}function dayMouseOver(){ this.className = "over"; this.style.backgroundColor = WebCalendar.darkColor; if(WebCalendar.day[this.id.substr(8)].split("/")[1] == WebCalendar.thisMonth) this.style.color = WebCalendar.lightColor;}function dayMouseOut(){ this.className = "out"; var d = WebCalendar.day[this.id.substr(8)], a = d.split("/"); this.style.removeAttribute('backgroundColor'); if(a[1] == WebCalendar.thisMonth &amp;&amp; d != WebCalendar.today) { if(WebCalendar.dateStyle &amp;&amp; a[0] == parseInt(WebCalendar.dateStyle[4], 10)) this.style.color = WebCalendar.lightColor; this.style.color = WebCalendar.wordColor; }}function writeCalendar() //对日历显示的数据的处理程序{ var y = WebCalendar.thisYear; var m = WebCalendar.thisMonth; var d = WebCalendar.thisDay; WebCalendar.daysMonth[1] = (0==y%4 &amp;&amp; (y%100!=0 || y%400==0)) ? 29 : 28; if (!(y&lt;=9999 &amp;&amp; y &gt;= 1000 &amp;&amp; parseInt(m, 10)&gt;0 &amp;&amp; parseInt(m, 10)&lt;13 &amp;&amp; parseInt(d, 10)&gt;0)){ alert("对不起,你输入了错误的日期!"); WebCalendar.thisYear = new Date().getFullYear(); WebCalendar.thisMonth = new Date().getMonth()+ 1; WebCalendar.thisDay = new Date().getDate(); } y = WebCalendar.thisYear; m = WebCalendar.thisMonth; d = WebCalendar.thisDay; funYearSelect(parseInt(y, 10)); funMonthSelect(parseInt(m,10)); //WebCalendar.iframe.meizzYearHead.innerText = y +" 年"; //WebCalendar.iframe.meizzYearMonth.innerText = parseInt(m, 10) +" 月"; WebCalendar.daysMonth[1] = (0==y%4 &amp;&amp; (y%100!=0 || y%400==0)) ? 29 : 28; //闰年二月为29天 var w = new Date(y, m-1, 1).getDay(); var prevDays = m==1 ? WebCalendar.daysMonth[11] : WebCalendar.daysMonth[m-2]; for(var i=(w-1); i&gt;=0; i--) //这三个 for 循环为日历赋数据源(数组 WebCalendar.day)格式是 d/m/yyyy { WebCalendar.day[i] = prevDays +"/"+ (parseInt(m, 10)-1) +"/"+ y; if(m==1) WebCalendar.day[i] = prevDays +"/"+ 12 +"/"+ (parseInt(y, 10)-1); prevDays--; } for(var i=1; i&lt;=WebCalendar.daysMonth[m-1]; i++) WebCalendar.day[i+w-1] = i +"/"+ m +"/"+ y; for(var i=1; i&lt;WebCalendar.dayShow-w-WebCalendar.daysMonth[m-1]+1; i++) { WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i] = i +"/"+ (parseInt(m, 10)+1) +"/"+ y; if(m==12) WebCalendar.day[WebCalendar.daysMonth[m-1]+w-1+i] = i +"/"+ 1 +"/"+ (parseInt(y, 10)+1); } for(var i=0; i&lt;WebCalendar.dayShow; i++) //这个循环是根据源数组写到日历里显示 { var a = WebCalendar.day[i].split("/"); WebCalendar.dayObj[i].innerText = a[0]; WebCalendar.dayObj[i].title = a[2] +"-"+ appendZero(a[1]) +"-"+ appendZero(a[0]); WebCalendar.dayObj[i].bgColor = WebCalendar.dayBgColor; WebCalendar.dayObj[i].style.color = WebCalendar.wordColor; if ((i&lt;10 &amp;&amp; parseInt(WebCalendar.day[i], 10)&gt;20) || (i&gt;27 &amp;&amp; parseInt(WebCalendar.day[i], 10)&lt;12)) WebCalendar.dayObj[i].style.color = WebCalendar.wordDark; if (WebCalendar.inputDate==WebCalendar.day[i]) //设置输入框里的日期在日历上的颜色 {WebCalendar.dayObj[i].bgColor = WebCalendar.darkColor; WebCalendar.dayObj[i].style.color = WebCalendar.lightColor;} if (WebCalendar.day[i] == WebCalendar.today) //设置今天在日历上反应出来的颜色 {WebCalendar.dayObj[i].bgColor = WebCalendar.todayColor; WebCalendar.dayObj[i].style.color = WebCalendar.lightColor;} }}function returnDate() //根据日期格式等返回用户选定的日期{ if(WebCalendar.objExport) { var returnValue; var a = (arguments.length==0) ? WebCalendar.day[this.id.substr(8)].split("/") : arguments[0].split("/"); var d = WebCalendar.format.match(/^(/w{4})(-|//)(/w{1,2})/2(/w{1,2})$/); if(d==null){alert("你设定的日期输出格式不对!/r/n/r/n请重新定义 WebCalendar.format !"); return false;} var flag = d[3].length==2 || d[4].length==2; //判断返回的日期格式是否要补零 returnValue = flag ? a[2] +d[2]+ appendZero(a[1]) +d[2]+ appendZero(a[0]) : a[2] +d[2]+ a[1] +d[2]+ a[0]; if(WebCalendar.timeShow) { var h = new Date().getHours(), m = new Date().getMinutes(), s = new Date().getSeconds(); returnValue += flag ? " "+ appendZero(h) +":"+ appendZero(m) +":"+ appendZero(s) : " "+ h +":"+ m +":"+ s; } WebCalendar.objExport.value = returnValue; hiddenCalendar(); }}//--&gt;</textarea>

原创粉丝点击