2
  • numberOfMonths が 2 に設定された日付ピッカーが 1 つあります。
  • 到着日と出発日は、次のロジック (onSelect 内) を使用して決定されます。

if ((count % 2)==0) {
      depart = $("#datepicker-1").datepicker('getDate');
      if (arriv > depart) { temp=arriv; arriv=depart; depart=temp; }
      $("#check-in").val($.datepicker.formatDate("DD, MM d, yy",arriv)); 
      $("#check-out").val($.datepicker.formatDate("DD, MM d, yy",depart));
     } else {
      arriv = $("#datepicker-1").datepicker('getDate');
      depart = null;
      if ((arriv > depart)&&(depart!=null)) { temp=arriv; arriv=depart; depart=temp; }
      $("#day-count").val('');
      $("#check-in").val($.datepicker.formatDate("DD, MM d, yy",arriv));
      $("#check-out").val($.datepicker.formatDate("DD, MM d, yy",depart));
     }

     if(depart!=null) { 
      diffDays = Math.abs((arriv.getTime() - depart.getTime())/(oneDay)); 
      if (diffDays == 0) { $("#day-count").val((diffDays+1)+' Night/s'); } else { $("#day-count").val(diffDays+' Night/s'); }
     }
  • これら 2 つの日付内の日数を取得することは問題ありません
  • 私が今欲しいのは、到着から出発までの日付を強調することです
  • onSelect を回避しようとしましたが、うまくいきませんでした。
  • これらの日付を強調表示するために beforeShowDay を使用していますが、理解できないようです
  • サンプルはこちらからどうぞ
  • 基本的に、選択した日付から 11 日または 12 日後に強調表示するようにカスタマイズされています (そのリンクのコードは次のとおりです)。
    $('#datePicker').datepicker({beforeShowDay: 関数(日付) {
                        if (selected != null && date.getTime() > selected.getTime() &&
                            (date.getTime() - selected.getTime())
  • 私は UI を使用するのが初めてで、ロジックがまだ明確でないため、これを理解できないようです。2 つを決定するために使用された前述のロジックを使用して、到着と出発の間の日付を強調表示する方法についてのアイデアはありますか?
4

3 に答える 3

1

これが役立つ場合.. :-)

$(function() {
     var togo=['10/25/2013']
     var datesArray=['10/27/2013','10/28/2013']
     var datesArray1=['10/25/2013','10/26/2013']
     var datesArray2=['10/24/2013']


        $( "#datepicker" ).datepicker({
            numberOfMonths: 2,

            selectMultiple:true,
            beforeShowDay: function (date) {
                var theday = (date.getMonth()+1) +'/'+ 
                            date.getDate()+ '/' + 
                            date.getFullYear();
                    return [true,$.inArray(theday, datesArray2) >=0?"specialDate":($.inArray(theday, datesArray)>=0?"specialDate2":($.inArray(theday, datesArray1)>=0?"specialDate1":''))];
                },

            onSelect: function(date){

             console.log("clicked"+date);  
            return [true,$.inArray(['10/24/2013'], togo) >=0?"specialDate":($.inArray(date, datesArray1)>=0?"specialDate1":'')] ;  

            }

        });
        //$.inArray(theday, datesArray) >=0?"specialDate":'specialDate1'
    });

http://jsfiddle.net/pratik24/Kyt2w/3/

于 2013-10-04T19:01:49.107 に答える
0

完全な答えではありませんが、これは役立つ場合があります。

http://www.eyecon.ro/datepicker/

むしろ残念ながら名前が付けられていますが、それはあなたが必要としているものかもしれないようです。

于 2010-08-18T22:06:56.713 に答える