2010-04-16 3 views
1
  • У меня есть один DatePicker с NUMBEROFMONTHS равным 2.
  • Дата прибытия и отъезда определяются с помощью этой логики (в пределах 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'); } 
  } 
  • Получение количества дней в течение этих двух дат без проблем
  • Теперь я хочу выделить эти даты, начиная с прибытия до вылета
  • Я пробовал работать вокруг onSelect, но не повезло.
  • Я теперь с помощью beforeShowDay, чтобы выделить эти даты, но я не могу понять это
  • Получили образец из here
  • В основном, она настроена, чтобы выделить 11 или 12 дней после выбранной даты (Вот код из этой ссылки).
 

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

Вы хотите выделить его во всплывающем календаре JQuery UI ...? – SpikETidE

+0

Что значит всплывающее всплывающее окно? В принципе, я хочу выделить даты, начиная с первой выбранной даты до второй выбранной даты. Например, я выбрал 19 апреля 2010 года и завершил мой выбор 21 апреля. Даты с 19 апреля должны выделить (или изменить свой цвет фона на что-то) до 21 апреля 2010 года. – Ralph

ответ

0

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

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

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

3

супер старый вопрос, но я наткнулся на ответ для тех, кто считает это: 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

Если это помогает .. :-)

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