Выделение дат между двумя выбранными датами jQuery UI Datepicker - PullRequest
1 голос
/ 16 апреля 2010
  • У меня есть один указатель даты с numberOfMonths, установленным в 2.
  • Дата прибытия и дата отправления определяются с помощью этой логики (в пределах onSelect):
<code>
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'); }
</code>     }
  • Получение количества дней в этих двух датах не проблема
  • Теперь я хочу выделить даты, начинающиеся с даты прибытия до вылета.
  • Я пытался обойти OnSelect, но безуспешно.
  • Я сейчас использую beforeShowDay, чтобы выделить эти даты, но я не могу понять,
  • Получил образец из здесь
  • По сути, он настроен для выделения через 11 или 12 дней после выбранной даты (вот код по этой ссылке).

    $('#datePicker').datepicker({beforeShowDay: function(date) {
                        if (selected != null && date.getTime() > selected.getTime() &&
                            (date.getTime() - selected.getTime()) 
  • Поскольку я новичок в использовании пользовательского интерфейса, а логика мне еще не ясна, я не могу этого понять. Любые идеи о том, как я могу сделать эти основные даты между Прибытием и Отъездом, используя мою вышеупомянутую логику, используемую при определении двух?

Ответы [ 3 ]

3 голосов
/ 19 апреля 2013

Супер старый вопрос, но я нашел ответ для любого, кто найдет это: http://jsfiddle.net/kVsbq/4/

JS

$(".datepicker").datepicker({
minDate: 0,
numberOfMonths: [12, 1],
beforeShowDay: function (date) {
    var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
    var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
    return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
},
onSelect: function (dateText, inst) {
    var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
    var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
    if (!date1 || date2) {
        $("#input1").val(dateText);
        $("#input2").val("");
        $(this).datepicker();
    } else {
        $("#input2").val(dateText);
        $(this).datepicker();
    }
}
});
0 голосов
/ 04 октября 2013

ЕСЛИ это помогает ..: -)

$(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/

0 голосов
/ 19 августа 2010

Не совсем ответ, но это может быть полезно:

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

Скорее, к сожалению, назван, но, похоже, это может быть то, что вам нужно.

...