ホームページ  >  記事  >  ウェブフロントエンド  >  Jquery ui datepicker は日付範囲を設定します。たとえば、3 日でしか区切ることができません [実装コード]_jquery

Jquery ui datepicker は日付範囲を設定します。たとえば、3 日でしか区切ることができません [実装コード]_jquery

WBOY
WBOYオリジナル
2016-05-16 15:02:231830ブラウズ

最近のバックエンド プロジェクトのフロントエンドは jquery ui カレンダー コントロールを使用するため、当然 jquery ui の datepicker を使用します

バックグラウンド データは非常に大きく、通常は数千万、数百万の接続があり、クエリは非常に遅くなります。そのため、後でフィルター条件をさらに追加したいと思います。必要に応じて時間を設定する必要があります。

製品は、3 日以内のみクエリできるようにカレンダー コントロールを作成する必要があり、前のカレンダー コントロールで 2013 年 9 月 1 日が選択されている場合、カレンダー コントロールはこの要件を満たす必要があります。

背面のカレンダー コントロールで選択できるのは、2013 年 9 月 1 日、2013 年 9 月 2 日、および 2013 年 9 月 3 日のみです。他の日付はすべて選択できません。最初はリマインダーをお願いしたかったのですが、リーダーが主張しました。これについてはクソ

リーダーが言ったように、プログラマーは数年間一生懸命働いてきました。 。 。幸いなことに、jquery ui のカレンダー コントロールは、非常に強力なこの機能を提供します

まず、公式 Web サイト (http://jqueryui.com/download/#!version=1.9.2) にアクセスして、バージョン 1.92 を使用している jquery ui パッケージをダウンロードします。

ダウンロード後

紹介:

<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 set the date range, if it can be Only 3 days」 [実装コード] は、エディターが共有するすべての内容です。参考にしていただければ幸いです。スクリプトホームをサポートします。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。