2012-02-21 10 views
0

チェックイン日からチェックイン日までの間にチェックアウト日を設定する方法を知りたいと思います。 6月(現在の月が2月の場合)と15日目を選択した場合と同様です。したがって、30日間(30限度)の間の日を選択する権限を与えます。したがって、終了日は7月15日となります。ここにコードがあります:別の日付に基づいてjQuery-ui datepickerの最小日数と最大日数を制限する方法

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/black-tie/jquery-ui.css" media="screen" /> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js"></script> 
<style type="text/css"> 
body{ font: 60.0% "Trebuchet MS", sans-serif; margin: 50px; } 
</style> 
<script type="text/javascript"> 
    $(function() { 
     $('#from').datepicker({ 
      numberOfMonths: 2, 
      firstDay: 1, 
      dateFormat: 'DD dd-mm-yy', 
      minDate: '0', 
      maxDate: '+2Y', 
      onSelect: function(dateStr) { 
       var min = $(this).datepicker('getDate'); 
       $('#to').datepicker('option', 'minDate', min || '0'); 
       datepicked(); 
      } 
     }); 
     $('#to').datepicker({ 
      numberOfMonths: 2, 
      firstDay: 1, 
      dateFormat: 'DD dd-mm-yy', 
      minDate: '0', 
      maxDate: '+2Y', 
      onSelect: function(dateStr) { 
       var max = $(this).datepicker('getDate'); 
       $('#from').datepicker('option', 'maxDate', max || '+2Y'); 
       datepicked(); 
      } 
     }); 
    }); 
    var datepicked = function() { 
     var from = $('#from'); 
     var to = $('#to'); 
     var nights = $('#nights'); 
     var fromDate = from.datepicker('getDate') 
     var toDate = to.datepicker('getDate') 
     if (toDate && fromDate) { 
      var difference = 0; 
      var oneDay = 1000 * 60 * 60 * 24; 
      var difference = Math.ceil((toDate.getTime() - fromDate.getTime())/oneDay); 
      nights.val(difference); 
     } 
    } 
</script> 
<input type="text" id="from" name="from" size="28" style="width:194px; /*Tag Style*/" value="" > 
<input type="text" id="to" name="to" size="28" style="width:194px; /*Tag Style*/" value="" > 
<input type="text" id="nights" name="nights" size="4" style="width:50px; /*Tag Style*/" value="" readonly="readonly"> 

私たちの主な動機は、このコードをチェックイン、チェックアウト、夜間に行うことです。チェックイン日は2012〜2013年の任意の月とすることができ、チェックアウト日は30日後のチェックイン日のみとなり、総泊は30泊のみとなります。

答えて

5

this demoをご覧ください。私はそうのようにonSelectイベントにいくつかの行を追加しました:

onSelect: function(dateStr) { 
     var d1 = $(this).datepicker("getDate"); 
     d1.setDate(d1.getDate() + 0); // change to + 1 if necessary 
     var d2 = $(this).datepicker("getDate"); 
     d2.setDate(d2.getDate() + 30); // change to + 29 if necessary 
     $("#to").datepicker("setDate", null); 
     $("#to").datepicker("option", "minDate", d1); 
     $("#to").datepicker("option", "maxDate", d2); 
     datepicked(); 
    } 

は、宿泊施設のビジネスの私の理解によると、日付が包括的でなければなりません - つまり6月/ 2012分の15 + 30夜がどうあるべき6月/ 14/2012。しかし私はあなたが最初の数行の質問で言及した例に従ってきました。

+0

チェックアウト日に関連するものがあります。チェックイン日から30日の間の間でなければなりません。 6月28日を選択すると、最終チェックアウト日は7月28日となります。上記の例では40泊を簡単に選ぶことができます。 – user1089288

+0

私はこの質問を理解しています。私は私の答えを更新しました。 –

+0

ありがとうございますSalman :) – user1089288

関連する問題