<script type="text/javascript">
var gMonths=new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");
var WeekDay=new Array("日","一","二","三","四","五","六");
var strToday="今天";
var strYear="年";
var strMonth="月";
var strDay="日";
//var splitChar="-";
var splitChar="";
var startYear=2000;
var endYear=2050;
var dayTdHeight=12;
var dayTdTextSize=12;
var gcNotCurMonth="#E0E0E0";
var gcRestDay="#FF0000";
var gcWorkDay="#444444";
var gcMouseOver="#79D0FF";
var gcMouseOut="#F4F4F4";
var gcToday="#444444";
var gcTodayMouseOver="#6699FF";
var gcTodayMouseOut="#79D0FF";
var gdCtrl=new Object();
var goSelectTag=new Array();
var gdCurDate=new Date();
var giYear=gdCurDate.getFullYear();
var giMonth=gdCurDate.getMonth()+1;
var giDay=gdCurDate.getDate();
function $(){var elements=new Array();for(var i=0;i<arguments.length;i++) {var element=arguments[i];if(typeof(arguments[i])=='string'){element=document.getElementById(arguments[i]);}if(arguments.length==1){return element;}elements.Push(element);}return elements;}
Array.prototype.Push=function(){var startLength=this.length;for(var i=0;i<arguments.length;i++){this[startLength+i]=arguments[i];}return this.length;}
String.prototype.HexToDec=function(){return parseInt(this,16);}
String.prototype.cleanBlank=function(){return this.isEmpty()?"":this.replace(/\s/g,"");}
function checkColor(){var color_tmp=(arguments[0]+"").replace(/\s/g,"").toUpperCase();var model_tmp1=arguments[1].toUpperCase();var model_tmp2="rgb("+arguments[1].substring(1,3).HexToDec()+","+arguments[1].substring(1,3).HexToDec()+","+arguments[1].substring(5).HexToDec()+")";model_tmp2=model_tmp2.toUpperCase();if(color_tmp==model_tmp1 ||color_tmp==model_tmp2){return true;}return false;}
function $V(){return $(arguments[0]).value;}
function fPopCalendar(evt,popCtrl,dateCtrl){evt.cancelBubble=true;gdCtrl=dateCtrl;fSetYearMon(giYear,giMonth);var point=fGetXY(popCtrl);with($("calendardiv").style){left=point.x+"px";top=(point.y+popCtrl.offsetHeight+1)+"px";visibility='visible';zindex='99';position='absolute';}$("calendardiv").focus();}
function fSetDate(iYear,iMonth,iDay){var iMonthNew=new String(iMonth);var iDayNew=new String(iDay);if(iMonthNew.length<2){iMonthNew="0"+iMonthNew;}if(iDayNew.length<2){iDayNew="0"+iDayNew;}gdCtrl.value=iYear+splitChar+iMonthNew+splitChar+iDayNew;fHideCalendar();}
function fHideCalendar(){$("calendardiv").style.visibility="hidden";for(var i=0;i<goSelectTag.length;i++){goSelectTag[i].style.visibility="visible";}goSelectTag.length=0;}
function fSetSelected(){var iOffset=0;var iYear=parseInt($("tbSelYear").value);var iMonth=parseInt($("tbSelMonth").value);var aCell=$("cellText"+arguments[0]);aCell.bgColor=gcMouseOut;with(aCell){var iDay=parseInt(innerHTML);if(checkColor(style.color,gcNotCurMonth)){iOffset=(innerHTML>10)?-1:1;}iMonth+=iOffset;if(iMonth<1){iYear--;iMonth=12;}else if(iMonth>12){iYear++;iMonth=1;}}fSetDate(iYear,iMonth,iDay);}
function Point(iX,iY){this.x=iX;this.y=iY;}
function fBuildCal(iYear,iMonth){var aMonth=new Array();for(var i=1;i<7;i++){aMonth[i]=new Array(i);}var dCalDate=new Date(iYear,iMonth-1,1);var iDayOfFirst=dCalDate.getDay();var iDaysInMonth=new Date(iYear,iMonth,0).getDate();var iOffsetLast=new Date(iYear,iMonth-1,0).getDate()-iDayOfFirst+1;var iDate=1;var iNext=1;for(var d=0;d<7;d++){aMonth[1][d]=(d<iDayOfFirst)?(iOffsetLast+d)*(-1):iDate++;}for(var w=2;w<7;w++){for(var d=0;d<7;d++){aMonth[w][d]=(iDate<=iDaysInMonth)?iDate++:(iNext++)*(-1);}}return aMonth;}
function fDrawCal(iYear,iMonth,iCellHeight,iDateTextSize){var colorTD=" bgcolor='"+gcMouseOut+"' bordercolor='"+gcMouseOut+"'";var styleTD=" valign='middle' align='center' style='height:"+iCellHeight+"px;font-weight:bolder;font-size:"+iDateTextSize+"px;";var dateCal="";dateCal+="<tr>";for(var i=0;i<7;i++){dateCal+="<td"+colorTD+styleTD+"color:#990099'>"+WeekDay[i]+"</td>";}dateCal+="</tr>";for(var w=1;w<7;w++){dateCal+="<tr>";for(var d=0;d<7;d++){var tmpid=w+""+d;dateCal+="<td"+styleTD+"cursor:pointer;' onclick='fSetSelected("+tmpid+")'>";dateCal+="<span id='cellText"+tmpid+"'></span>";dateCal+="</td>";}dateCal+="</tr>";}return dateCal;}
function fUpdateCal(iYear,iMonth){var myMonth=fBuildCal(iYear,iMonth);var i=0;for(var w=1;w<7;w++){for(var d=0;d<7;d++){with($("cellText"+w+""+d)){parentNode.bgColor=gcMouseOut;parentNode.borderColor=gcMouseOut;parentNode.onmouseover=function(){this.bgColor=gcMouseOver;};parentNode.onmouseout=function(){this.bgColor=gcMouseOut;};if(myMonth[w][d]<0){style.color=gcNotCurMonth;innerHTML=Math.abs(myMonth[w][d]);}else{style.color=((d==0)||(d==6))?gcRestDay:gcWorkDay;innerHTML=myMonth[w][d];if(iYear==giYear && iMonth==giMonth && myMonth[w][d]==giDay){style.color=gcToday;parentNode.bgColor=gcTodayMouseOut;parentNode.onmouseover=function(){this.bgColor=gcTodayMouseOver;};parentNode.onmouseout=function(){this.bgColor=gcTodayMouseOut;};}}}}}}
function fSetYearMon(iYear,iMon){$("tbSelMonth").options[iMon-1].selected=true;for(var i=0;i<$("tbSelYear").length;i++){if($("tbSelYear").options[i].value==iYear){$("tbSelYear").options[i].selected=true;}}fUpdateCal(iYear,iMon);}
function fPrevMonth(){var iMon=$("tbSelMonth").value;var iYear=$("tbSelYear").value;if(--iMon<1){iMon=12;iYear--;}fSetYearMon(iYear,iMon);}
function fNextMonth(){var iMon=$("tbSelMonth").value;var iYear=$("tbSelYear").value;if(++iMon>12){iMon=1;iYear++;}fSetYearMon(iYear,iMon);}
function fGetXY(aTag){var oTmp=aTag;var pt=new Point(0,0);do{pt.x+=oTmp.offsetLeft;pt.y+=oTmp.offsetTop;oTmp=oTmp.offsetParent;}while(oTmp.tagName.toUpperCase()!="BODY");return pt;}
function getDateDiv(){var noSelectForIE="";var noSelectForFireFox="";if(document.all){noSelectForIE="onselectstart='return false;'";}else{noSelectForFireFox="-moz-user-select:none;";}var dateDiv="";dateDiv+="<div id='calendardiv' onclick='event.cancelBubble=true' "+noSelectForIE+" style='"+noSelectForFireFox+"position:absolute;z-index:99;visibility:hidden;border:1px solid #999999;'>";dateDiv+="<table border='0' bgcolor='#E0E0E0' cellpadding='1' cellspacing='1' >";dateDiv+="<tr>";dateDiv+="<td><input type='button' id='PrevMonth' value='<' style='height:20px;width:20px;font-weight:bolder;' onclick='fPrevMonth()'>";dateDiv+="</td><td><select id='tbSelYear' style='border:1px solid;' onchange='fUpdateCal($V(\"tbSelYear\"),$V(\"tbSelMonth\"))'>";for(var i=startYear;i<endYear;i++){dateDiv+="<option value='"+i+"'>"+i+strYear+"</option>";}dateDiv+="</select></td><td>";dateDiv+="<select id='tbSelMonth' style='border:1px solid;' onchange='fUpdateCal($V(\"tbSelYear\"),$V(\"tbSelMonth\"))'>";for(var i=0;i<12;i++){dateDiv+="<option value='"+(i+1)+"'>"+gMonths[i]+"</option>";}dateDiv+="</select></td><td>";dateDiv+="<input type='button' id='NextMonth' value='>' style='height:20px;width:20px;font-weight:bolder;' onclick='fNextMonth()'>";dateDiv+="</td>";dateDiv+="</tr><tr>";dateDiv+="<td align='center' colspan='4'>";dateDiv+="<div style='background-color:#cccccc'><table width='100%' border='0' cellpadding='3' cellspacing='1'>";dateDiv+=fDrawCal(giYear,giMonth,dayTdHeight,dayTdTextSize);dateDiv+="</table></div>";dateDiv+="</td>";dateDiv+="</tr><tr><td align='center' colspan='4' nowrap>";dateDiv+="<span style='cursor:pointer;font-weight:bolder;' onclick='fSetDate(giYear,giMonth,giDay)' onmouseover='this.style.color=\""+gcMouseOver+"\"' onmouseout='this.style.color=\"#000000\"'>"+strToday+":"+giYear+strYear+giMonth+strMonth+giDay+strDay+"</span>";dateDiv+="</tr></tr>";dateDiv+="</table></div>";return dateDiv;}
with(document){onclick=fHideCalendar;write(getDateDiv());}
</script>
分享到:
相关推荐
日期时间选择js脚本是网页开发中常用的一种功能,它允许用户通过交互式的日历界面选取特定的日期和时间,增强了用户体验。在本场景中,我们关注的是一个名为`calendar.js`的JavaScript文件,它是实现这个功能的核心...
在JavaScript编程中,时间选择器是一个常见的用户界面组件,它允许用户方便地选取特定的日期和时间。在本文中,我们将深入探讨如何实现一个精确到秒的时间选择器,并讨论与之相关的日期格式设置。 首先,我们需要...
"js_calendar"是一个专门用于日期时间选择的JavaScript库,它提供了多样化的选择方式,包括下拉框形式和弹出日历形式,同时支持多种日期格式的选择。以下将详细介绍这个库的功能和使用方法。 1. **基本功能**:js_...
首先,"dol-datepicker.js" 文件很可能是这个日期时间选择器的主要实现部分,它包含了JavaScript代码,用于创建交互式的日期时间选择界面以及处理用户的选取行为。JavaScript的Date对象是处理日期和时间的基础,我们...
在JavaScript(特别是原生JS)中,我们可以创建自定义的日期时间选择器,或者利用现有的开源库来实现这一功能。 在JavaScript中,`Date` 对象是处理日期和时间的基础。通过实例化 `Date` 对象,我们可以获取当前...
在JavaScript编程中,日期时间选择是一项常见的功能,特别是在网页交互设计中。JavaScript作为一种客户端脚本语言,被广泛用于实现网页动态效果,其中就包括用户友好的日期和时间选择器。这个压缩包文件“日期时间...
2. **样式自定义**:默认样式可能无法满足所有设计需求,`jquery-timepicker.js`允许你通过CSS来调整时间选择器的外观。你可以根据自己的设计风格修改相关的CSS类,以改变颜色、字体、布局等。 3. **事件处理**:...
这个压缩包文件的标题“时间日期JavaScript选择时间日期”表明它包含了一系列用于在网页上实现日期和时间选择功能的JavaScript代码片段或库。这些资源可能是开发者个人整理并珍藏的经典示例,可以帮助我们更好地理解...
2. 使用库和框架:jQuery UI的DatePicker、Bootstrap的DateTimePicker、Moment.js等都是常用的日期时间选择库。它们提供预设的样式和丰富的API,便于快速集成到项目中。 3. 使用现代Web组件:利用Web Components技术...
在本案例中,"超实用js时间选择器" 提供了一个简洁易用的解决方案,只需引入相关的JavaScript和CSS文件,就能在项目中快速集成。 1. **基本原理** JavaScript时间选择器通常基于事件监听、DOM操作以及日期对象(`...
js 时间选择器 js 时间选择器 js 时间选择器日期选择器
JavaScript时间选择器是一种在Web页面上为用户提供直观、便捷的方式来选取特定时间的交互元素。它通常包含小时、分钟和(可选)秒的选择,并且可以...分析和学习这些文件将有助于深入理解如何创建一个JS时间选择器。
"js时间选择器"是一种JavaScript插件,用于提供美观且用户友好的时间选择功能。这种组件通常会以弹出日历的形式出现,允许用户方便地选取特定的日期,而无需手动输入。在本文中,我们将深入探讨js时间选择器的工作...
时间选择器JS特效插件是前端开发中常见的一种交互组件,它主要负责为用户提供一个方便、直观的方式来选取特定的时间或时间段。在网页应用中,这种插件被广泛应用于日程安排、预约系统、计时器等功能,提升用户体验,...
JavaScript时间选择插件是网页应用中常见的一种交互组件,它允许用户通过图形界面方便地选取时间,常用于表单输入、日程安排或事件预订等场景。这些插件通常使用JavaScript编写,配合HTML和CSS来实现动态的时间选择...
`移动端js时间选择器` 是为了提供一种便捷、直观的方式,让用户能够轻松选择日期和时间,而不是手动输入。在这个专题中,我们将深入探讨如何利用HTML、JavaScript(特别是JavaScript库和插件)来创建一个高效的时间...
总之,Datetime.js 是一个用于创建带有时间选择功能的日期选择框的JavaScript库,通过简单的API调用即可实现这一功能。其核心特性包括日期和时间选择、事件处理、格式化输出等,为网页开发者提供了一种高效、灵活的...
在JavaScript编程中,时间选择控件常常用于网页交互,让用户能方便地输入或选择特定的时间。"JS时间选择(纯时间无日期)"这个话题主要关注如何创建一个只包含小时和分钟,而不包括秒的纯时间选择器,且用户可以在...
标题中的“一个时间选择的JavaScript”指的是一个使用JavaScript编写的交互式时间选择器组件。这种组件通常用于网页应用,允许用户方便地选取特定的时间,如小时、分钟和可能的秒数,以增强用户体验。JavaScript是一...
- 可以使用现有的开源库,如`jQuery UI Datepicker`,`Bootstrap Datepicker`等,它们提供了丰富的配置选项和插件,可以快速实现高级的日期时间选择功能。 4. **JavaScript与JSP的结合** - JSP是一种服务器端脚本...