`
hanchilin
  • 浏览: 7845 次
社区版块
存档分类
最新评论

日期选择器

    博客分类:
  • js
 
阅读更多

一个简单的jsp日期选择器

var gMonths=new Array("一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月");
var WeekDay=new Array("日","一","二","三","四","五","六");
var strToday="今天";
var strYear="年";
var strMonth="月";
var strDay="日";
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;}
//打开日期选状框fPopCalendar(event,this,this)
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());}

 

分享到:
评论

相关推荐

    web端 日期选择器 月份选择器 时间选择器 时间范围选择器

    本文将详细讲解"web端日期选择器、月份选择器、时间选择器以及时间范围选择器"这四个核心知识点,并结合提供的文件名称进行分析。 1. **日期选择器** 日期选择器是Web应用中常见的组件,用于让用户选择一个具体的...

    Android自定义日期选择器源码

    因此,开发者经常需要自定义日期选择器来提供更符合应用风格或特定功能的交互体验。这篇内容将深入探讨如何在Android中创建一个自定义日期选择器,并通过源码分析来增强我们的理解。 首先,我们要明白自定义日期...

    jsp日期选择器开发技术- Web开发

    日期选择器是Web应用程序中不可或缺的组件,它允许用户方便地选取日期,常见于表单输入、日程安排等场景。本教程将重点探讨如何在JSP中实现日期选择器的开发技术。 首先,我们需要理解JSP中的基本概念。JSP是由HTML...

    基于jquery的H5移动端选择器,日期选择器,自定义级联选择器,自定义html选择器

    基于jQuery的H5移动端日期选择器可以提供直观、易用的用户界面,支持触摸操作,并能根据手机屏幕尺寸进行适配。通常,这样的选择器会包含年、月、日的滑动选择或者下拉菜单,使得用户可以快速、准确地设定日期,避免...

    easyui 日期选择器

    EasyUI 提供了一些事件来监听日期选择器的操作,如`onOpen`(打开日期选择器时触发)、`onClose`(关闭日期选择器时触发)等。开发者可以根据需求编写相应的事件处理函数。 ```html (date){console.log('选中的日期...

    实现了Android开发自定义年月日日期选择器,时分时间选择器

    本话题主要探讨如何实现自定义的年月日日期选择器和时分时间选择器,这两个组件在许多应用程序中都非常常见,例如在事件安排、预约服务或者设置提醒等功能中。 首先,我们来看如何创建自定义的年月日日期选择器。这...

    利用css+javascript实现的一个日期选择器代码

    【标题】:“利用css+javascript实现的一个日期选择器代码”涉及的核心知识点主要集中在CSS样式设计和JavaScript编程上,用于创建一个交互式的日期选择组件。日期选择器是网页表单中常见的一种元素,允许用户方便地...

    仿iphone日期选择器,开始时间和结束时间选择

    标题中的"仿iPhone日期选择器,开始时间和结束时间选择"指的是创建一个UI组件,它模仿了苹果设备上的日期选择器,并允许用户分别选择开始日期和结束日期。 苹果原生的日期选择器(UIDatePicker)通常只能单独选择一...

    jQuery datepicker 日期选择器 中文汉化版 开始日期结束日期

    jQuery UI的日期选择器(jQuery datepicker)是一个广泛使用的组件,尤其在网页表单中用于输入日期时。这个组件提供了一个优雅、用户友好的界面,允许用户通过日历视图来选择日期,而不是手动输入。在中文环境中,...

    基于wheelView的自定义日期选择器

    "基于WheelView的自定义日期选择器"就是一个很好的示例,它利用了WheelView这一滚动视图组件来实现用户友好的日期选择功能。这篇内容将深入探讨如何构建这样的选择器,以及其在Android开发中的应用和扩展性。 首先...

    js日期选择器

    JavaScript日期选择器是一种常见的网页交互元素,用于帮助用户在网页上方便地选取日期。它通常以日历形式呈现,提供友好的用户界面,使得输入日期变得更加直观和简单。在前端开发中,尤其对于需要用户输入特定日期的...

    前端easyUI日期选择器(日/周/月)示例

    前端jquery+easyUI实现的日期选择器。 博文地址:https://blog.csdn.net/wanghuiWHI/article/details/135648572 Demo简要: 1.日期选择器可以提供日选择器、周选择器、月选择器 2.日选择器最大31天,选择起始日期后...

    swift-DatePicker日期选择器日期时间选择时间选择器

    `Zws-China-DatePicker-d62d652`可能是某个第三方Swift库,它可能提供了更高级的功能,如自定义日期选择器的外观,或者为中国用户优化的日期格式等。在实际项目中,使用这类库可以简化开发工作并提升用户体验。具体...

    EXCELVBA 日期选择器加载项

    标题 "EXCELVBA 日期选择器加载项" 指的是在Excel中使用VBA(Visual Basic for Applications)创建的一个特殊功能,它允许用户通过一个交互式的日期选择面板来方便地选择日期,而无需手动输入。这个加载项通常集成在...

    带有开始时间和结束时间的日期选择器

    在Android开发中,日期选择器是用户界面中常见的组件,用于让用户方便地选取特定的日期或时间。"带有开始时间和结束时间的日期选择器"是一个DEMO项目,它专为Android Studio设计,允许用户同时选择一个起始日期和...

    jquery移动端日期选择器

    "jquery移动端日期选择器"就是为了解决这个问题而设计的,它提供了一个友好、便捷的日期选取体验,特别适用于触屏设备。这个插件使得用户在手机或平板上选择日期时不再需要手动输入复杂的日期格式,从而提高用户体验...

    一个移动端react的日期选择器

    在移动端应用开发中,UI组件的选择器扮演着至关重要的角色,特别是日期选择器,它能够帮助用户方便地选取和输入日期。React作为一个流行的JavaScript库,为开发者提供了丰富的组件生态系统,其中包括了专门用于...

    Qt 滚动 日期 选择器 循环选择

    在Qt框架中,滚动日期选择器是一种常用的UI组件,它允许用户方便地选取特定的日期和时间。在本文中,我们将深入探讨如何实现一个支持年、月、日、时、分、秒循环选择的Qt滚动日期选择器。我们将讨论相关的Qt类、方法...

    日期选择器插件(一共五个在)

    日期选择器插件是前端开发中常用的一种组件,主要用于用户在网页上方便地选取日期或时间范围。在本文中,我们将深入探讨五个不同的日期选择器插件,它们各自的特点、功能以及如何在项目中集成和使用。 1. **...

Global site tag (gtag.js) - Google Analytics