Multiple-Dates-Picker-for-jQuery-UI
Multiple-Dates-Picker-for-jQuery-UI copied to clipboard
multiDatesPicker select date range without pickableRange
Hi this is NOT the ISSUE i added new lines to multiDatesPicker options for select date range withoust range ( Limit ). steps 1.select first date normaly 2.press end Date with SHIFT key
here is the code
var shitfpressed = false;
var firstDate = '';
var lastselectedDate = '';
var datedif = '';
$("#dateSelector").multiDatesPicker({
altField: '#altField',
minDate: 0,
onSelect: function (selectedDate) {
$(this).keydown(function (e) {
if((e.keyCode == 16)){
shitfpressed = true;
}
});
if(shitfpressed == true){
$('.divoverlay').show();
console.log(lastselectedDate+'=>'+selectedDate);
var parts1 =selectedDate.split('/');
var date1 = new Date(parts1[2],parts1[0]-1,parts1[1]);
var parts2 =lastselectedDate.split('/');
var date2 = new Date(parts2[2],parts2[0]-1,parts2[1]);
//console.log(date2.getTime()+" -- "+date1.getTime());
if(date2.getTime() > date1.getTime()){
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
datedif = Math.ceil(timeDiff / (1000 * 3600 * 24));
console.log('different = '+datedif);
var modifiedDate = '';
for(var x=1; x <= datedif; x++){
date1.setDate(date1.getDate() + 1);
console.log(date1);
modifiedDate = (date1.getMonth()+1)+'/'+date1.getDate()+'/'+date1.getFullYear();
console.log(modifiedDate);
$(this).multiDatesPicker('addDates',modifiedDate);
}
} else if(date2.getTime() < date1.getTime()){
var timeDiff = Math.abs(date1.getTime() - date2.getTime());
datedif = Math.ceil(timeDiff / (1000 * 3600 * 24));
console.log('different = '+datedif);
var modifiedDate = '';
for(var x=1; x <= datedif; x++){
date2.setDate(date2.getDate() + 1);
console.log(date2);
modifiedDate = (date2.getMonth()+1)+'/'+date2.getDate()+'/'+date2.getFullYear();
console.log(modifiedDate);
$(this).multiDatesPicker('addDates',modifiedDate);
}
}
shitfpressed = false;
$('.divoverlay').hide();
}
lastselectedDate = selectedDate;
}
});
Still Confuse !!!!!!!!!! contact me ;- [email protected]
Hi, I have developped it in an other way: it works. However the method addDates of MDP takes 30ms. So if you want to add 1 month it takes 1seconds, too slow ! I think this addDates method should be optimised
var shifted = false;
$(document).on('keyup keydown', function(e){shifted = e.shiftKey} );
$('#datepicker').multiDatesPicker({
dateFormat: "yy-mm-dd",
onSelect: function(selectedDate){
var dates = $('#datepicker').multiDatesPicker('getDates')
$("#valeurs").html(dates);
var first_day;
if(shifted && dates.length >=2){
var last_day = new Date(selectedDate);
var start_i = 0;
for (var i = 0; i < dates.length-1; i++) {
var start_date = new Date(dates[i]);
if( start_date < last_day ){
var start_i = i;
}
}
var first_day = new Date(dates[start_i]);
var currentDate = first_day;
currentDate.setDate(currentDate.getDate() + 1)
while (currentDate < last_day) {
$('#datepicker').multiDatesPicker('addDates', currentDate.toISOString().slice(0,10) );
currentDate.setDate(currentDate.getDate() + 1)
}
}
},
});