javascript日期选择控件

  1. <html>
  2. <head>
  3. <title>calenderselect</title>
  4. <metahttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1"/>
  5. <styletype='text/css'>
  6. body{
  7. font-family:"Lucidasansunicode",sans-serif;
  8. font-size:12px;
  9. margin:0;
  10. padding:0;
  11. height:100%;
  12. }
  13. #basis{
  14. display:inline;
  15. position:relative;
  16. }
  17. #calender{
  18. position:absolute;
  19. top:30px;
  20. left:0;
  21. width:220px;
  22. background-color:#fff;
  23. border:3pxsolid#ccc;
  24. padding:10px;
  25. z-index:10;
  26. }
  27. #control{
  28. text-align:center;
  29. margin:005px0;
  30. }
  31. #controlselect{
  32. font-family:"Lucidasansunicode",sans-serif;
  33. font-size:11px;
  34. margin:05px;
  35. vertical-align:middle;
  36. }
  37. #calender.controlPlus{
  38. padding:05px;
  39. text-decoration:none;
  40. color:#333;
  41. }
  42. #calendertable{
  43. empty-cells:show;
  44. width:100%;
  45. font-size:11px;
  46. table-layout:fixed;
  47. }
  48. #calender.weekdaystd{
  49. text-align:right;
  50. padding:1px5px1px1px;
  51. color:#333;
  52. }
  53. #calender.weektd{
  54. text-align:right;
  55. cursor:pointer;
  56. border:1pxsolid#fff;
  57. padding:1px4px1px0;
  58. }
  59. #calender.week.today{
  60. background-color:#ccf;
  61. border-color:#ccf;
  62. }
  63. #calender.week.holiday{
  64. font-weight:bold;
  65. }
  66. #calender.week.hoverEle{
  67. border-color:#666;
  68. background-color:#99f;
  69. color:#000;
  70. }
  71. </style>
  72. <scripttype="text/javascript">
  73. varallMonth=[31,28,31,30,31,30,31,31,30,31,30,31];
  74. varallNameOfWeekDays=["Mo","Di","Mi","Do","Fr","Sa","So"];
  75. varallNameOfMonths=["Januar","Februar","M?rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"];
  76. varnewnewDate=newDate();
  77. varyearZero=newDate.getFullYear();
  78. varmonthZero=newDate.getMonth();
  79. varday=newDate.getDate();
  80. varcurrentDay=0,currentDayZero=0;
  81. varmonth=monthZero,year=yearZero;
  82. varyearMin=2000,yearMax=2010;
  83. vartarget='';
  84. varhoverEle=false;
  85. functionsetTarget(e){
  86. if(e)returne.target;
  87. if(event)returnevent.srcElement;
  88. }
  89. functionnewElement(type,attrs,content,toNode){
  90. varele=document.createElement(type);
  91. if(attrs){
  92. for(vari=0;i<attrs.length;i++){
  93. eval('ele.'+attrs[i][0]+(attrs[i][2]?'=\u0027':'=')+attrs[i][1]+(attrs[i][2]?'\u0027':''));
  94. }
  95. }
  96. if(content)ele.appendChild(document.createTextNode(content));
  97. if(toNode)toNode.appendChild(ele);
  98. returnele;
  99. }
  100. functionsetMonth(ele){month=parseInt(ele.value);calender()}
  101. functionsetYear(ele){year=parseInt(ele.value);calender()}
  102. functionsetValue(ele){
  103. if(ele.parentNode.className=='week'&&ele.firstChild){
  104. vardayOut=ele.firstChild.nodeValue;
  105. if(dayOut<10)dayOut='0'+dayOut;
  106. varmonthmonthOut=month+1;
  107. if(monthOut<10)monthOut='0'+monthOut;
  108. target.value=dayOut+'.'+monthOut+'.'+year;
  109. removeCalender();
  110. }
  111. }
  112. functionremoveCalender(){
  113. varparentEle=document.getElementById("calender");
  114. while(parentEle.firstChild)parentEle.removeChild(parentEle.firstChild);
  115. document.getElementById('basis').parentNode.removeChild(document.getElementById('basis'));
  116. }
  117. functioncalender(){
  118. varparentEle=document.getElementById("calender");
  119. parentEle.onmouseover=function(e){
  120. varele=setTarget(e);
  121. if(ele.parentNode.className=='week'&&ele.firstChild&&ele!=hoverEle){
  122. if(hoverEle)hoverElehoverEle.className=hoverEle.className.replace(/hoverEle?/,'');
  123. hoverEle=ele;
  124. ele.className='hoverEle'+ele.className;
  125. }else{
  126. if(hoverEle){
  127. hoverElehoverEle.className=hoverEle.className.replace(/hoverEle?/,'');
  128. hoverEle=false;
  129. }
  130. }
  131. }
  132. while(parentEle.firstChild)parentEle.removeChild(parentEle.firstChild);
  133. functioncheck(){
  134. if(year%4==0&&(year%100!=0||year%400==0))allMonth[1]=29;
  135. elseallMonth[1]=28;
  136. }
  137. functionaddClass(name){if(!currentClass){currentClass=name}else{currentClass+=''+name}};
  138. if(month<0){month+=12;year-=1}
  139. if(month>11){month-=12;year+=1}
  140. if(year==yearMax-1)yearMax+=1;
  141. if(year==yearMin)yearMin-=1;
  142. check();
  143. varcontrol=newElement('p',[['id','control',1]],false,parentEle);
  144. varcontrolPlus=newElement('a',[['href','javascript:month--;calender()',1],['className','controlPlus',1]],'<',control);
  145. varselect=newElement('select',[['onchange',function(){setMonth(this)}]],false,control);
  146. for(vari=0;i<allNameOfMonths.length;i++)newElement('option',[['value',i,1]],allNameOfMonths[i],select);
  147. select.selectedIndex=month;
  148. select=newElement('select',[['onchange',function(){setYear(this)}]],false,control);
  149. for(vari=yearMin;i<yearMax;i++)newElement('option',[['value',i,1]],i,select);
  150. select.selectedIndex=year-yearMin;
  151. controlPlus=newElement('a',[['href','javascript:month++;calender()',1],['className','controlPlus',1]],'>',control);
  152. check();
  153. currentDay=1-newDate(year,month,1).getDay();
  154. if(currentDay>0)currentDay-=7;
  155. currentDaycurrentDayZero=currentDay;
  156. varnewMonth=newElement('table',[['cellSpacing',0,1],['onclick',function(e){setValue(setTarget(e))}]],false,parentEle);
  157. varnewMonthBody=newElement('tbody',false,false,newMonth);
  158. vartr=newElement('tr',[['className','head',1]],false,newMonthBody);
  159. tr=newElement('tr',[['className','weekdays',1]],false,newMonthBody);
  160. for(i=0;i<7;i++)td=newElement('td',false,allNameOfWeekDays[i],tr);
  161. tr=newElement('tr',[['className','week',1]],false,newMonthBody);
  162. for(i=0;i<allMonth[month]-currentDayZero;i++){
  163. varcurrentClass=false;
  164. currentDay++;
  165. if(currentDay==day&&month==monthZero&&year==yearZero)addClass('today');
  166. if(currentDay<=0){
  167. if(currentDayZero!=-7)td=newElement('td',false,false,tr);
  168. }
  169. else{
  170. if((currentDay-currentDayZero)%7==0)addClass('holiday');
  171. td=newElement('td',(!currentClass?false:[['className',currentClass,1]]),currentDay,tr);
  172. if((currentDay-currentDayZero)%7==0)tr=newElement('tr',[['className','week',1]],false,newMonthBody);
  173. }
  174. if(i==allMonth[month]-currentDayZero-1){
  175. i++;
  176. while(i%7!=0){i++;td=newElement('td',false,false,tr)};
  177. }
  178. }
  179. }
  180. functionshowCalender(ele){
  181. if(document.getElementById('basis')){removeCalender()}
  182. else{
  183. target=document.getElementById(ele.id.replace(/for_/,''));
  184. varbasis=ele.parentNode.insertBefore(document.createElement('div'),ele);
  185. basis.id='basis';
  186. newElement('div',[['id','calender',1]],false,basis);
  187. calender();
  188. }
  189. }
  190. </script>
  191. </head>
  192. <body>
  193. <div><inputtype='text'id='date1'/><inputtype='button'id='for_date1'value='date'onclick='showCalender(this)'/></div>
  194. <p>sometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometextsometext</p>
  195. <div><inputtype='text'id='date2'/><inputtype='button'id='for_date2'value='date'onclick='showCalender(this)'/></div>
  196. <pid='output'></p>
  197. </body>
  198. </html>
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值