온라인 데모: http://demo.jb51.net/js/2012/js_date/ 코드 복사코드는 다음과 같습니다. J의 날짜 선택기에 입력 상자 <br>var gMonths=new Array("1월","2월","3월 ","4월","5월","6월","7월","8월","9월","10월","11월","10월" 2월" <br>var WeekDay=new Array( "일","일","이","삼","사","오","六") <br>var strToday=" <br>var strYear" <br>var strMonth="월"; <br>var strDay="Day"; <br>var startYear=2000 ; <br>var dayTdHeight =12; <br>var dayTdTextSize=12; <br>var gcRestDay="#FF0000" <br>var gcMouseOver= "#79D0FF"; <br>var gcMouseOut="#F4F4F4"; <br>var gcTodayMouseOver="#6699FF "; 🎜>var gdCtrl=new Object(); <br>var goSelectTag=new Array(); <br>var gdCurDate=new Date() <br>var giYear=gdCurDate.getFullYear(); gdCurDate.getMonth() 1; <br>var giDay=gdCurDate.getDate(); <br>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){반환 요소 ;}elements.Push(element);}요소 반환;} <BR>Array.prototype.Push=function(){var startLength=this.length;for( var i=0;i<arguments.length;i ){ this[startLength i]=arguments[i];}return this.length;} <BR>String.prototype.HexToDec=function(){returnparseInt(this, 16);} <BR>String.prototype.cleanBlank=function (){return this.isEmpty()?"":this.replace(/s/g,"");} <BR>function checkColor(){var color_tmp=(arguments[0] "").replace(/ s/g,"").toUpperCase();var model_tmp1=arguments[1].toUpperCase();var model_tmp2="rgb(" 인수[1].substring(1,3).HexToDec() "," 인수 [1].substring(1,3).HexToDec() "," 인수[1].substring(5).HexToDec() ")";model_tmp2= model_tmp2.toUpperCase();if(color_tmp==model_tmp1 || color_tmp==model_tmp2){return true;}return false;} <BR>function $V(){return $(arguments[0]).value;} <BR>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 ();} <BR>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();} <BR>function fHideCalendar(){$("calendardiv").style .visibility="hidden";for(var i=0; i<goSelectTag.length;i ){goSelectTag[i].style.visibility="visible";}goSelectTag.length=0;} <BR>function fSetSelected( ){var iOffset=0;var iYear=parseInt($( "tbSelYear").value);var iMonth=parseInt($("tbSelMonth").value);var aCell=$("cellText" 인수[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);} <br>function Point(iX, iY){this.x=iX;this.y=iY ;} <br>함수 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);}}월 반환;} <BR>function fDrawCal(iYear,iMonth,iCellHeight,iDateTextSize){ var colorTD=" bgcolor='" gcMouseOut "' bordercolor=' " gcMouseOut "'";var styleTD=" valign='middle' align='center' 스타일='height:" iCellHeight "px;font-weight:bolder; 글꼴 크기:" iDateTextSize "px;";var dateCal= "";dateCal ="<tr>";for(var i=0;i<7;i ){dateCal ="<td" colorTD styleTD " color:#990099'> "<" ;/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;}<br>함수 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 ;};}}}}}} <BR>함수 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);} <BR>함수 fPrevMonth(){var iMon=$("tbSelMonth").value;var iYear=$("tbSelYear").value;if(--iMon<1){iMon=12; iYear--;}fSetYearMon(iYear,iMon);} <BR>function fNextMonth(){var iMon=$("tbSelMonth").value;var iYear=$("tbSelYear").value;if( iMon>12 ){iMon=1;iYear ;}fSetYearMon(iYear,iMon);} <br>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;} <br>함수 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><입력 유형='버튼' id='PrevMonth' 값='<' 스타일='높이:20px;폭:20px;글꼴-무게:굵게;' 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 ="<옵션 값='" 나는 "'>" 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 ="<옵션 값='" (i 1) "'>" gMonths[i] "</option>";}dateDiv ="</select></td><td>";dateDiv ="<input type='button' id='NextMonth' value= '>' 스타일='높이:20px;폭:20px;글꼴-무게:굵게;' 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 ;} <br>with(document){onclick=fHideCalendar;write(getDateDiv());} <br> <본문>