js日期选择控件(Asp.Net可用)

it2022-05-09  35

网上有许多js写的时间选择控件,但大都不能在aspx中使用(只能在html中用) 好不容易找到一个可以用的,不过界面难看了 代码如下: dateTimePicker.js代码如下: //   主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子: //   一、<input name=txt><input type=button value=setday οnclick="setday(this,document.all.txt)"> //   二、<input οnfοcus="setday(this)"> var  bMoveable = true ; var  strFrame;        document.writeln(' < iframe id = endDateLayer frameborder = 0  width = 162  height = 211  style = " position: absolute;  z-index: 9998; display: none " ></ iframe > ');strFrame = ' < style > ';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 += ' </ style > ';strFrame += ' < scr'  +  'ipt > ';strFrame += ' var  datelayerx,datelayery;';strFrame += ' var  bDrag;';strFrame += ' function  document.onmousemove()';strFrame += '{ if (bDrag  &&  window.event.button == 1 )';strFrame += '    { var  DateLayer = parent.document.all.endDateLayer.style;';strFrame += '        DateLayer.posLeft  +=  window.event.clientX - datelayerx;';strFrame += '        DateLayer.posTop  +=  window.event.clientY - datelayery;}}';strFrame += ' function  DragStart()';strFrame += '{ var  DateLayer = parent.document.all.endDateLayer.style;';strFrame += '    datelayerx = window.event.clientX;';strFrame += '    datelayery = window.event.clientY;';strFrame += '    bDrag = true ;}';strFrame += ' function  DragEnd(){';strFrame += '    bDrag = false ;}';strFrame += ' </ scr'  +  'ipt > ';strFrame += ' < div style = " z-index:9999;position: absolute; left:0; top:0; "  onselectstart = " return false " > ';strFrame += ' < span id = tmpSelectYearLayer  style = " z-index: 9999;position: absolute;top: 3; left: 19;display: none " ></ span > ';strFrame += ' < span id = tmpSelectMonthLayer  style = " z-index: 9999;position: absolute;top: 3; left: 78;display: none " ></ span > ';strFrame += ' < span id = tmpSelectHourLayer  style = " z-index: 9999;position: absolute;top: 188; left: 35px;display: none " ></ span > ';strFrame += ' < span id = tmpSelectMinuteLayer style = " z-index:9999;position:absolute;top: 188; left: 77px;display: none " ></ span > ';strFrame += ' < span id = tmpSelectSecondLayer style = " z-index:9999;position:absolute;top: 188; left: 119px;display: none " ></ span > ';strFrame += ' < table border = 1  cellspacing = 0  cellpadding = 0  width = 142  height = 160  bordercolor = #63A3E9 bgcolor = #63A3E9  > ';strFrame += '     < tr >< td width = 142  height = 23   bgcolor = #FFFFFF > ';strFrame += '         < table border = 0  cellspacing = 1  cellpadding = 0  width = 158   height = 23 > ';strFrame += '             < tr align = center  > ';strFrame += '                 < td width = 16  align = center bgcolor = #63A3E9 style = " font-size:12px;cursor: hand;color: #ffffff "  ';strFrame += '                       onclick = " parent.meizzPrevM() "  title = " 向前翻 1 月 "   >< >& lt; </ b ></ td > ';strFrame += '                    < td width = 60  align = " center "  bgcolor = " #63A3E9 "   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 = " 点击这里选择年份 " >< span  id = meizzYearHead ></ span ></ td > ';strFrame += '                    < td width = 48  align = " center "  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 = " 点击这里选择月份 " >< span id = meizzMonthHead  ></ span ></ td > ';strFrame += '                    < td width = 16  bgcolor = #63A3E9 align = center style = " font-size:12px;cursor: hand;color: #ffffff "  ';strFrame += '                       onclick = " parent.meizzNextM() "  title = " 向后翻 1 月 "   >< >& gt; </ b ></ td > ';strFrame += '                </ tr > ';strFrame += '            </ table ></ td ></ tr > ';strFrame += '        < tr >< td width = 142  height = 18   > ';strFrame += '            < 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') + ' " > ';strFrame += '        < tr >< td style = " font-size:12px;color:#ffffff "  width = 20 >& nbsp;日 </ td > ';strFrame += ' < td style = " font-size:12px;color:#FFFFFF "   >& nbsp;一 </ td >< td style = " font-size:12px;color:#FFFFFF " >& nbsp;二 </ td > ';strFrame += ' < td style = " font-size:12px;color:#FFFFFF "   >& nbsp;三 </ td >< td style = " font-size:12px;color:#FFFFFF "   >& nbsp;四 </ td > ';strFrame += ' < td style = " font-size:12px;color:#FFFFFF "   >& nbsp;五 </ td >< td style = " font-size:12px;color:#FFFFFF "   >& nbsp;六 </ td ></ tr > ';strFrame += ' </ table ></ td ></ tr > ';strFrame += '   < tr  >< td width = 142  height = 120   > ';strFrame += '     < table border = 1  cellspacing = 2  cellpadding = 2  BORDERCOLORLIGHT = #63A3E9 BORDERCOLORDARK = #FFFFFF bgcolor = #fff8ec width = 140  height = 120   > '; var  n = 0 for  (j = 0 ;j < 5 ;j ++ ){ strFrame +=  '  < tr align = center  > ';  for  (i = 0 ;i < 7 ;i ++ ){strFrame += ' < td width = 20  height = 20  id = meizzDay' + n + ' style = " font-size:12px "  onclick = parent.meizzDayClick( this .innerText, 0 ) ></ td > ';n ++ ;}strFrame += ' </ tr > ';}strFrame += '       < tr align = center  > '; for  (i = 35 ;i < 37 ;i ++ )strFrame += ' < td width = 20  height = 20  id = meizzDay' + i + ' style = " font-size:12px "   onclick = " parent.meizzDayClick(this.innerText,0) " ></ td > ';strFrame += '         < td colspan = 5  align = right style = " color:#1478eb " >< span onclick = " parent.setNull() "  style = " font-size:12px;cursor: hand " ';strFrame += '         onmouseover = " style.color=\'#ff0000\' "  onmouseout = " style.color=\'#1478eb\' "  title = " 将日期置空 " > 置空 </ span >& nbsp; & nbsp; < span onclick = " parent.meizzToday() "  style = " font-size:12px;cursor: hand " ';strFrame += '         onmouseover = " style.color=\'#ff0000\' "  onmouseout = " style.color=\'#1478eb\' "  title = " 当前日期时间 " > 当前 </ span >& nbsp; & nbsp; < span style = " cursor:hand "  id = evaAllOK onmouseover = " style.color=\'#ff0000\' "  onmouseout = " style.color=\'#1478eb\' "   onclick = " parent.closeLayer() "  title = " 关闭日历 " > 关闭 & nbsp; </ span ></ td ></ tr > ';strFrame += '     </ table ></ td ></ tr >< tr  >< td  > ';strFrame += '         < table border = 0  cellspacing = 1  cellpadding = 0  width = 100 %   bgcolor = #FFFFFF height = 22   > ';strFrame += '           < tr bgcolor = " #63A3E9 " >< td id = bUseTimeLayer width = 30   style = " cursor:hand "  title = " 点击这里启用/禁用时间 " ';strFrame += '                onmouseover = " style.backgroundColor=\'#aaccf3\' "  align = center onmouseout = " style.backgroundColor=\'#63A3E9\' " ';strFrame += '                 onclick = " parent.UseTime(this) " > ';strFrame += < span ></ span ></ td > ';strFrame += '              < td 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 > ' ;strFrame += '                     < span id = meizzHourHead ></ span ></ td > ';strFrame += '              < td 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 > ' ;strFrame += '                     < span id = meizzMinuteHead ></ span ></ td > ';strFrame += '              < td 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 > ' ;strFrame += '                     < span id = meizzSecondHead ></ span ></ td > ';strFrame += '              </ tr ></ table ></ td ></ tr ></ table ></ div > ';window.frames.endDateLayer.document.writeln(strFrame);window.frames.endDateLayer.document.close();         // 解决ie进度条不结束的问题 // ==================================================== 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  >   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 &&  d.getMonth() == r[ 2 &&  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 > 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  &&  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  &&  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  <   1000   ||  m  >   9999 ) {alert( " 年份值不在 1000 到 9999 之间! " ); return ;}     var  n  =  m  -   50 ;     if  (n  <   1000 ) n  =   1000 ;     if  (n  +   101   >   9999 ) n  =   9974 ;     var  s  =   "  <select name=tmpSelectYear style='font-size: 12px'  "     s  +=   " οnblur='document.all.tmpSelectYearLayer.style.display=\ " none\ " "     s  +=   " οnchange='document.all.tmpSelectYearLayer.style.display=\ " none\ " ; "     s  +=   " parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n " ;     var  selectInnerHTML  =  s;     for  ( var  i  =  n; i  <  n  +   101 ; i ++ )    {         if  (i  ==  m) { selectInnerHTML  +=   " <option value=' "   +  i  +   " ' selected> "   +  i  +   " "   +   " </option>\r\n " ; }         else  { selectInnerHTML  +=   " <option value=' "   +  i  +   " '> "   +  i  +   " "   +   " </option>\r\n " ; }    }    selectInnerHTML  +=   " </select> " ;    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  =   "    <select name=tmpSelectMonth style='font-size: 12px'  "     s  +=   " οnblur='document.all.tmpSelectMonthLayer.style.display=\ " none\ " "     s  +=   " οnchange='document.all.tmpSelectMonthLayer.style.display=\ " none\ " ; "     s  +=   " parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n " ;     var  selectInnerHTML  =  s;     for  ( var  i  =   1 ; i  <   13 ; i ++ )    {         if  (i  ==  m) { selectInnerHTML  +=   " <option value=' " + i + " ' selected> " + i + " " + " </option>\r\n " ; }         else  { selectInnerHTML  +=   " <option value=' " + i + " '> " + i + " " + " </option>\r\n " ; }    }    selectInnerHTML  +=   " </select> " ;    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  =   " <select name=tmpSelectHour style='font-size: 12px'  "     s  +=   " οnblur='document.all.tmpSelectHourLayer.style.display=\ " none\ " "     s  +=   " οnchange='document.all.tmpSelectHourLayer.style.display=\ " none\ " ; "     s  +=   " parent.meizzTheHour = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute);'>\r\n " ;     var  selectInnerHTML  =  s;     for  ( var  i  =   0 ; i  <   24 ; i ++ )    {         if  (i  ==  m) { selectInnerHTML  +=   " <option value=' " + i + " ' selected> " + i + " </option>\r\n " ; }         else  { selectInnerHTML  +=   " <option value=' " + i + " '> " + i + " </option>\r\n " ; }    }    selectInnerHTML  +=   " </select> " ;    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  =   " <select name=tmpSelectMinute style='font-size: 12px'  "     s  +=   " οnblur='document.all.tmpSelectMinuteLayer.style.display=\ " none\ " "     s  +=   " οnchange='document.all.tmpSelectMinuteLayer.style.display=\ " none\ " ; "     s  +=   " parent.meizzTheMinute = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute);'>\r\n " ;     var  selectInnerHTML  =  s;     for  ( var  i  =   0 ; i  <   60 ; i ++ )    {         if  (i  ==  m) { selectInnerHTML  +=   " <option value=' " + i + " ' selected> " + i + " </option>\r\n " ; }         else  { selectInnerHTML  +=   " <option value=' " + i + " '> " + i + " </option>\r\n " ; }    }    selectInnerHTML  +=   " </select> " ;    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  =   " <select name=tmpSelectSecond style='font-size: 12px'  "     s  +=   " οnblur='document.all.tmpSelectSecondLayer.style.display=\ " none\ " "     s  +=   " οnchange='document.all.tmpSelectSecondLayer.style.display=\ " none\ " ; "     s  +=   " parent.meizzTheSecond = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute,parent.meizzTheSecond);'>\r\n " ;     var  selectInnerHTML  =  s;     for  ( var  i  =   0 ; i  <   60 ; i ++ )    {         if  (i  ==  m) { selectInnerHTML  +=   " <option value=' " + i + " ' selected> " + i + " </option>\r\n " ; }         else  { selectInnerHTML  +=   " <option value=' " + i + " '> " + i + " </option>\r\n " ; }    }    selectInnerHTML  +=   " </select> " ;    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 && ((year % 100 != 0 ) || (year % 400 == 0 )))  return   true ; else   return   false ;} function  GetMonthCount(year,month)     // 闰年二月为29天 {     var  c = MonHead[month - 1 ]; if ((month == 2 ) && 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  >   999   &&  meizzTheYear  < 10000 ){meizzTheYear -- ;}     else {alert( " 年份超出范围(1000-9999)! " );}    meizzSetDay(meizzTheYear,meizzTheMonth);} function  meizzNextY()     // 往后翻 Year {     if (meizzTheYear  >   999   &&  meizzTheYear  < 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 < 10   &&  meizzTheMonth.length < 2 )     // 格式化成两位数字     {        parent.meizzTheMonth = " 0 " + parent.meizzTheMonth;    }     if  (parent.meizzTheDate < 10   &&  parent.meizzTheDate.length < 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 > 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  <   37 ; i ++ ){meizzWDay[i] = "" };     // 将显示框的内容全部清空      var  day1  =   1 ,day2 = 1 ,firstday  =   new  Date(yy,mm - 1 , 1 ).getDay();     // 某月第一天的星期几      for  (i = 0 ;i < firstday;i ++ )meizzWDay[i] = GetMonthCount(mm == 1 ? yy - 1 :yy,mm == 1 ? 12 :mm - 1 ) - firstday + i + 1      // 上个月的最后几天      for  (i  =  firstday; day1  <  GetMonthCount(yy,mm) + 1 ; i ++ ) { meizzWDay[i] = day1;day1 ++ ; }     for  (i = firstday + GetMonthCount(yy,mm);i < 37 ;i ++ ) { meizzWDay[i] = day2;day2 ++ ; }     for  (i  =   0 ; i  <   37 ; i ++ )    {         var  da  =  eval( " odatelayer.meizzDay " + i)     // 书写新的一个月的日期星期排列      if  (meizzWDay[i] != "" )    {         // 初始化边框         da.borderColorLight = " #63A3E9 " ;        da.borderColorDark = " #63A3E9 " ;        da.style.color = " #1478eb " ;         if (i < firstday)         // 上个月的部分         {            da.innerHTML = " <b><font color=#BCBABC> "   +  meizzWDay[i]  +   " </font></b> " ;            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()  &&                      (mm == 1 ? 12 :mm - 1 ==   new  Date().getMonth() + 1   &&  meizzWDay[i]  ==   new  Date().getDate())  ?                       " #5CEFA0 " : " #f5f5f5 " ;             else             {                da.style.backgroundColor  = ((mm == 1 ? yy - 1 :yy) == outDate.getFullYear()  &&  (mm == 1 ? 12 :mm - 1 ) ==  outDate.getMonth()  +   1   &&                  meizzWDay[i] == outDate.getDate()) ?   " #84C1FF "  :                (((mm == 1 ? yy - 1 :yy)  ==   new  Date().getFullYear()  &&  (mm == 1 ? 12 :mm - 1 ==   new  Date().getMonth() + 1   &&                  meizzWDay[i]  ==   new  Date().getDate())  ?   " #5CEFA0 " : " #f5f5f5 " );                 // 将选中的日期显示为凹下去                  if ((mm == 1 ? yy - 1 :yy) == outDate.getFullYear()  &&  (mm == 1 ? 12 :mm - 1 ) ==  outDate.getMonth()  +   1   &&                  meizzWDay[i] == outDate.getDate())                {                    da.borderColorLight = " #FFFFFF " ;                    da.borderColorDark = " #63A3E9 " ;                }            }        }         else   if  (i >= firstday + GetMonthCount(yy,mm))         // 下个月的部分         {            da.innerHTML = " <b><font color=#BCBABC> "   +  meizzWDay[i]  +   " </font></b> " ;            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()  &&                      (mm == 12 ? 1 :mm + 1 ==   new  Date().getMonth() + 1   &&  meizzWDay[i]  ==   new  Date().getDate())  ?                       " #5CEFA0 " : " #f5f5f5 " ;             else             {                da.style.backgroundColor  = ((mm == 12 ? yy + 1 :yy) == outDate.getFullYear()  &&  (mm == 12 ? 1 :mm + 1 ) ==  outDate.getMonth()  +   1   &&                  meizzWDay[i] == outDate.getDate()) ?   " #84C1FF "  :                (((mm == 12 ? yy + 1 :yy)  ==   new  Date().getFullYear()  &&  (mm == 12 ? 1 :mm + 1 ==   new  Date().getMonth() + 1   &&                  meizzWDay[i]  ==   new  Date().getDate())  ?   " #5CEFA0 " : " #f5f5f5 " );                 // 将选中的日期显示为凹下去                  if ((mm == 12 ? yy + 1 :yy) == outDate.getFullYear()  &&  (mm == 12 ? 1 :mm + 1 ) ==  outDate.getMonth()  +   1   &&                  meizzWDay[i] == outDate.getDate())                {                    da.borderColorLight = " #FFFFFF " ;                    da.borderColorDark = " #63A3E9 " ;                }            }        }         else          // 本月的部分         {            da.innerHTML = " <b> "   +  meizzWDay[i]  +   " </b> " ;            da.title = mm  + " "   +  meizzWDay[i]  +   " " ;            da.onclick = Function( " meizzDayClick(this.innerText,0) " );         // 给td赋予onclick事件的处理              // 如果是当前选择的日期,则显示亮蓝色的背景;如果是当前日期,则显示暗黄色背景              if ( ! outDate)                da.style.backgroundColor  =  (yy  ==   new  Date().getFullYear()  &&  mm  ==   new  Date().getMonth() + 1   &&  meizzWDay[i]  ==   new  Date().getDate()) ?                      " #5CEFA0 " : " #f5f5f5 " ;             else             {                da.style.backgroundColor  = (yy == outDate.getFullYear()  &&  mm ==  outDate.getMonth()  +   1   &&  meizzWDay[i] == outDate.getDate()) ?                      " #84C1FF " :((yy  ==   new  Date().getFullYear()  &&  mm  ==   new  Date().getMonth() + 1   &&  meizzWDay[i]  ==   new  Date().getDate()) ?                      " #5CEFA0 " : " #f5f5f5 " );                 // 将选中的日期显示为凹下去                  if (yy == outDate.getFullYear()  &&  mm ==  outDate.getMonth()  +   1   &&  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 < 1 ){        yy -- ;        mm = 12 + mm;    }     else   if (mm > 12 ){        yy ++ ;        mm = mm - 12 ;    }     if  (mm  <   10 )    {mm  =   " 0 "   +  mm;}     if  (hh < 10 )        {hh = " 0 "   +  hh;}     //      if  (mi < 10 )        {mi = " 0 "   +  mi;}     //      if  (se < 10 )        {se = " 0 "   +  se;}     //      if  (outObject)    {         if  ( ! n) {     // outObject.value="";               return ;}         if  ( n  <   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 < 10   &&  tmp.length < 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);  // 注:在这里你可以输出改成你想要的格式     }     else     {        outObject.value =  yy  +   " - "   +  format(mm)  +   " - "   +  format(n);  // 注:在这里你可以输出改成你想要的格式     }} function  bImgSwitch(){     if  (bUseTime)    {        bImg = " 开启 " ;    }     else     {        bImg = " 关闭 " ;    }} 在head中包含 <script language="JavaScript" type="text/javascript" src="dateTimePicker.js"></script> 在输入框 <input id="t_startTime" type="text" class="gray_18" value="" size="15" runat="server" οnclick="setday(this)"> 编码问题: 最佳方法是把js的编码换成utf-8,而不是把aspx的编码换成gb2312 在vs中打开该js文件,选择 文件--另存为  在弹出的对话框中选高级--编码 选择utf-8编码

转载于:https://www.cnblogs.com/tuyile006/archive/2007/04/21/722375.html


最新回复(0)