집 >
기사 > 웹 프론트엔드 > JS 날짜 및 시간 선택 제어 업그레이드 버전(자체 작성)_javascript 기술
JS 날짜 및 시간 선택 제어 업그레이드 버전(자체 작성)_javascript 기술
WBOY원래의
2016-05-16 17:27:081097검색
인터넷에서 발견된 여러 날짜 선택 프로그램의 일부 문제를 고려하여 프로그램을 다시 작성하기 시작했습니다. 대부분은 이전 코드를 기반으로 하며 시간 선택 기능을 추가하고 컨트롤을 모호하게 만드는 선택 및 개체 레이블을 숨겼습니다. 처음에는 window.createPopup()을 사용하여 달력 선택 항목을 팝업으로 표시하여 모든 탭에 걸쳐 표시하려고 했습니다.
그러나 도중에 createPopup 창을 사용하여 구현하는 것이 이론상으로는 불가능하다는 사실을 발견했습니다. 먼저 양식의 아무 곳이나 클릭하지 않으면 창이 닫히기 때문에 드롭을 사용할 때- 아래 상자를 눌러 연도를 선택하는 것은 매우 어렵습니다. 양식 외부를 클릭하는 것도 가능합니다. 물론 선택 항목을 직접 작성하면 피할 수 있지만 더 번거롭습니다. 둘째, 너비와 높이입니다. 양식은 팝업이 나타날 때만 설정할 수 있으며 분명히 다른 연도를 선택하면 컨트롤 높이가 변경됩니다.
/** *이 달력 선택 컨트롤은 이전 경험을 바탕으로 tiannet에 의해 완성되었습니다. 대부분의 코드는 meizz의 달력 컨트롤에서 나옵니다. *tiannet에는 시간 선택 기능, 선택, 개체 라벨 숨기기 기능 및 기타 작은 기능이 추가되었습니다. *사용법: * (1) 날짜만 선택 hour * (3)날짜, 시간, 분 선택*매개변수 설정 방법 * (1) 날짜 구분 기호 설정 setDateSplit(strSplit); 기본값은 "-"입니다. * ( 2) 설정 날짜와 시간 사이의 구분 기호 setDateTimeSplit(strSplit); 기본값은 " "입니다. * (3) 시간 구분 기호를 설정합니다. setTimeSplit(strSplit); 기본값은 ":"입니다. * (4) Set ( 1), (2) 및 (3) setSplit(strDateSplit, strDateTimeSplit, strTimeSplit) * (5) 시작 및 종료 연도 설정 setYearPeriod(intDateBeg, intDateEnd) * 설명: * 기본 반환 날짜 및 시간 형식은 다음과 같습니다. 2005-02-02 08:08 */ //------------------ 스타일 정의-- - -------------// //기능 버튼 스타일 동일 var s_tiannet_turn_base = "height:16px; 글꼴 크기: 9pt;색상:흰색;테두리:0 단색 #CCCCCC;커서:손;배경색:#2650A6;"; //연도, 월 등을 바꾸는 버튼 var s_tiannet_turn = "width:28px;" s_tiannet_turn_base;//닫기, 지우기 등의 버튼 스타일 var s_tiannet_turn2 = "s_tiannet_turn_base" //연도 선택 드롭다운 상자 s_tiannet_select = "너비:64px;display:none ;"; //월, 시, 분 선택 드롭다운 상자 var s_tiannet_select2 = "너비:46px;display:none;" // 날짜 선택 제어 본문 스타일 var s_tiannet_body = "width:150; background-color:#2650A6;display:none;z-index:9998;position:absolute; "border-left:1 solid #CCCCCC;border-top:1 solid #CCCCCC;border -right:1 solid #999999;border-bottom:1 solid #999999;"; //일일의 스타일 표시 var s_tiannet_day = "폭:21px;높이:20px;배경색:# D8F0FC;글꼴 크기:10pt;"; //글꼴 스타일 var s_tiannet_font = "색상:#FFCC00;글꼴 크기:9pt;커서 :hand;"; //링크 스타일 var s_tiannet_link = "text-장식:none;font-size:9pt;color:#2650A6;"; //가로선 var s_tiannet_line = "border-bottom:1 solid #6699CC" //----- 변수 정의------------- ---------------- -// var tiannetYearSt = 1950; //시작 연도 선택 가능 var tiannetYearEnd = 2010 //종료 연도 선택 가능 var tiannetDateNow = new Date(); var tiannetYear = tiannetDateNow.getFullYear(); //연도를 정의하는 변수의 초기값 var tiannetMonth = tiannetDateNow.getMonth() 1; 월을 정의하는 변수 var tiannetDateNow.getDate(); var tiannetHour = 8;//tiannetDateNow.getHours() var tiannetMinute = 0;//tiannetDateNow.getMinutes(); 🎜>var tiannetArrDay=new Array(42); //날짜를 쓰기 위한 배열 정의 var tiannetDateSplit = "-"; //날짜 구분 기호 var tiannetDateTimeSplit = " "; and time var tiannetTimeSplit = ":"; //시간 구분 기호 var tiannetOutObject; //날짜 및 시간을 수신하는 개체 var arrTiannetHide = new Array();//강제적으로 적용되는 레이블 be hide var m_bolShowHour = false;//시간 표시 여부 var m_bolShowMinute = false;//분 표시 여부 var m_aMonHead = new Array(12); 양력의 매월 일수 m_aMonHead[1] = 28; m_aMonHead[3] = 30; = 30; m_aMonHead[7] = 31; m_aMonHead[9] = 31; >// --------------- 사용자는 함수를 호출할 수 있습니다--------------- --------------// //사용자 호출 함수 - 날짜만 선택 function setDay(obj){ tiannetOutObject = obj // 태그에 값이 있는 경우 날짜를 현재 값으로 초기화합니다. var strValue = tiannetTrim(tiannetOutObject.value); if( strValue != "" ){ tiannetInitDate(strValue); 🎜>} tiannetPopCalendar(); } //사용자 호출 기능 - 날짜 및 시간 선택 function setDayH(obj ){ tiannetOutObject = m_bolShowHour = true; //태그에 값이 있으면 날짜와 시간을 현재 값으로 초기화합니다. var strValue = tiannetTrim(tiannetOutObject.value); if( strValue != "" ){ tiannetInitDate(strValue.substring(0,10)); var hour = strValue.substring(11,13) if( hour < 10 ) tiannetHour = hour.substring(1,2); 🎜>} tiannetPopCalendar() } //用户主调函数-选择日期和小时及分钟 function setDayHM(obj){ tiannetOutObject = obj; m_bolShowHour = true; m_bolShowMinute = true; //如果标签中有值,则将日期和小时及分钟初始化为当前值 var strValue = tiannetTrim(tiannetOutObject.value); if( strValue != "" ){ tiannetInitDate(strValue.substring(0,10)); var time = strValue.substring(11,16); var arr = time.split(tiannetTimeSplit); tiannetHour = arr[0]; tiannetMinute = arr[1]; if( tiannetHour < 10 ) tiannetHour = tiannetHour.substring(1,2); if( tiannetMinute < 10 ) tiannetMinute = tiannetMinute.substring(1,2); } tiannetPopCalendar(); } //设置开始日期和结束日期 function setYearPeriod(intDateBeg,intDateEnd){ tiannetYearSt = intDateBeg; tiannetYearEnd = intDateEnd; } //设置日期分隔符。默认为"-" function setDateSplit(strDateSplit){ tiannetDateSplit = strDateSplit; } //设置日期与时间之间的分隔符。默认为" " function setDateTimeSplit(strDateTimeSplit){ tiannetDateTimeSplit = strDateTimeSplit; } //设置时间分隔符。默认为":" function setTimeSplit(strTimeSplit){ tiannetTimeSplit = strTimeSplit; } //设置分隔符 function setSplit(strDateSplit,strDateTimeSplit,strTimeSplit){ tiannetDateSplit(strDateSplit); tiannetDateTimeSplit(strDateTimeSplit); tiannetTimeSplit(strTimeSplit); } //设置默认的日期。格式为:YYYY-MM-DD function setDefaultDate(strDate){ tiannetYear = strDate.substring(0,4); tiannetMonth = strDate.substring(5,7); tiannetDay = strDate.substring(8,10); } //设置默认的时间。格式为:HH24:MI function setDefaultTime(strTime){ tiannetHour = strTime.substring(0,2); tiannetMinute = strTime.substring(3,5); } // ---------------------- end 用户可调用的函数 -----------------------------// //------------------ begin 页面显示部分 ---------------------------// var weekName = new Array("日","一","二","三","四","五","六"); document.write('