>  기사  >  웹 프론트엔드  >  Jquery ui datepicker는 날짜 범위를 설정합니다. 예를 들어 3일로만 구분할 수 있습니다. [구현 코드]_jquery

Jquery ui datepicker는 날짜 범위를 설정합니다. 예를 들어 3일로만 구분할 수 있습니다. [구현 코드]_jquery

WBOY
WBOY원래의
2016-05-16 15:02:231795검색

최근 백엔드 프로젝트의 프런트엔드는 jquery ui 달력 컨트롤을 사용하므로 당연히 jquery ui의 datepicker를 사용합니다

백그라운드 데이터가 꽤 커서 보통 수천만, 수백만개의 연결로 쿼리가 매우 느려지므로 나중에 필터링 조건을 더 추가하고 싶고 시간은 필요에 따라 설정해야 합니다.

제품은 3일 이내에만 쿼리할 수 있도록 달력 컨트롤을 만들어야 하며, 이전 달력 컨트롤이 2013년 9월 1일을 선택한 경우 달력 컨트롤이 이 요구 사항을 충족해야 합니다.

뒤에 있는 달력 컨트롤은 2013년 9월 1일, 2013년 9월 2일, 2013년 9월 3일만 선택할 수 있습니다. 다른 날짜는 모두 선택할 수 없습니다. 원래는 알림을 달라고 하려고 했는데 리더가 고집을 부렸습니다. 젠장

리더의 말대로 코더들은 수년간 열심히 일해왔습니다. . . 다행히도 jquery ui의 캘린더 컨트롤이 이 기능을 제공하는데, 이는 매우 강력합니다

먼저 공식 홈페이지(http://jqueryui.com/download/#!version=1.9.2)에 가서 jquery ui 패키지를 다운로드하세요. 저는 1.92 버전을 사용하고 있습니다

다운로드 후

소개:

<link href="jquery-ui/1.9.2/css/smoothness/jquery-ui-1.9.2.custom.min.css" rel="stylesheet" type="text/css" />

<script type="text/javascript" src="jquery-ui/1.9.2/js/jquery-ui-1.9.2.custom.js"></script>


<script type="text/javascript" src="jquery-ui/1.9.2/datepicker-init.js"></script>



<script type="text/javascript"> 
$(function(){
 var dates = $("#startDate,#endDate");
 var option;
 var targetDate;
 var optionEnd;
 var targetDateEnd;
 dates.datepicker({
  showButtonPanel:false,
  onSelect: function(selectedDate){ 
   if(this.id == "startDate"){
   // 如果是选择了开始时间(startDate)设置结束时间(endDate)的最小时间和最大时间
   option = "minDate"; //最小时间
   var selectedTime = getTimeByDateStr(selectedDate);
   var minTime = selectedTime;
	 //最小时间 为开第一个日历控制选择的时间
   targetDate = new Date(minTime); 
   //设置结束时间的最大时间
   optionEnd = "maxDate";
	 //因为只能做三天内的查询 所以是间隔2天 当前时间加上2*24*60*60*1000
   targetDateEnd = new Date(minTime+2*24*60*60*1000);
   }else{
   // 如果是选择了结束时间(endDate)设置开始时间(startDate)的最小时间和最大时间
   option = "maxDate"; //最大时间
   var selectedTime = getTimeByDateStr(selectedDate);
   var maxTime = selectedTime;
   targetDate = new Date(maxTime);
   //设置最小时间 
   optionEnd = "minDate";
   targetDateEnd = new Date(maxTime-2*24*60*60*1000);
   }
   dates.not(this).datepicker("option", option, targetDate); 
   dates.not(this).datepicker("option", optionEnd, targetDateEnd); 
  }
 });
// 检查起始时间不能超过3天
function checkTimeInOneMonth(startDate, endDate){
	var startTime = getTimeByDateStr(startDate);
 var endTime = getTimeByDateStr(endDate);
 if((endTime - startTime) > 2*24*60*60*1000){
  return false;
 }
 return true;
}


//根据日期字符串取得其时间
function getTimeByDateStr(dateStr){
 var year = parseInt(dateStr.substring(0,4));
 var month = parseInt(dateStr.substring(5,7),10)-1;
 var day = parseInt(dateStr.substring(8,10),10);
 return new Date(year, month, day).getTime();
}
</script> <input type="text" value="" name="startDate" readonly="true" id="startDate" title="日期范围不能大于3天"/><input type="text" value="" name="endDate" readonly="true" id="endDate" title="日期范围不能大于3天"/>

위 기사 Jquery ui datepicker는 날짜 범위를 설정하며, 3일로만 구분할 수 있다면 [구현 코드]는 편집자가 공유한 내용이 모두 참고가 되셨으면 좋겠습니다. 스크립트 홈을 지원합니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.