// Créer un sélecteur de plage de dates à l'aide de datepicker
// paramètres régionnaux pour l'affichage du calendrier jQuery(function($){ $.datepicker.regional['fr'] = { monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', 'Jul','Aoû','Sep','Oct','Nov','Déc'], dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], weekHeader: 'Sm', firstDay: 1, isRTL: false, showMonthAfterYear: false, dateFormat: 'dd-mm-yy', yearSuffix: ''}; });
// Mettre en fonction le code $(function() {
// Application des paramètres régionaux
$.datepicker.setDefaults($.datepicker.regional['fr']);
// Nombre de jours minimum pour la plage de dates
var daysToAdd = 4; // Remplacez le nombre 4 par le nombre de jours minimum pour une plage de jours
// Transformer en date le texte retourné par datepicker et lancer la fonction suivante
function onDateSelected(selectedDate, daysToAdd, otherSelector){
if (!selectedDate) { return; }
var sd = selectedDate.substr(0, 2); // jour selectionné
var sm = selectedDate.substr(3, 2); // mois selectionné
var sy = selectedDate.substr(6, 4); // annee selectionné
onDateSelectedDMY(sd, sm, sy, daysToAdd, otherSelector);
// Application de la restriction function onDateSelectedDMY(sd, sm, sy, daysToAdd, otherSelector){
var dtMax = new Date(sy, parseInt(sm)-1, sd);
dtMax.setDate(dtMax.getDate() + daysToAdd);
var dd = dtMax.getDate();
var mm = dtMax.getMonth();
var y = dtMax.getFullYear();
$(otherSelector).datepicker("option", daysToAdd >= 0 ? "minDate" : "maxDate", new Date(y, mm, dd));
} // Exécution sur sélection de la date d'arrivée $(".datepicker.arrivee").datepicker({
onSelect: function (selected) {
onDateSelected(selected, daysToAdd, ".datepicker.depart");
} });
// Exécution sur sélection de la date de départ $(".datepicker.depart").datepicker({
onSelect: function (selected) {
onDateSelected(selected, -daysToAdd, ".datepicker.arrivee");
} });
// Restriction due à la date du jour ( on ne peut réserver dans le passé) var today = new Date(); onDateSelectedDMY(today.getDate(), today.getMonth()+1, today.getFullYear(), 0, '.datepicker.arrivee'); onDateSelectedDMY(today.getDate(), today.getMonth()+1, today.getFullYear(), daysToAdd, '.datepicker.depart'); });
|