comment append un jour à une date à l’aide de jquery datepicker

J’ai 2 zones de texte sur mon site pour la date de prise en charge et la date de restitution, à l’aide du sélecteur de date jQuery.

Je ne parviens pas à régler la date de livraison sur un jour d’avance sur la date de collecte sélectionnée.

Voici ce que j’ai

$('.pickupDate').change(function() { var date2 = $('.pickupDate').datepicker('getDate', '+1d'); $('.dropoffDate').datepicker('setDate', date2); }); 

L’exemple ci-dessus s’exécutera, mais la valeur dans la zone de texte de repository correspondra à la valeur de collecte au lieu d’un jour d’avance. Exemple: si je sélectionne le 01-01-2010, le code ci-dessus renvoie le 01-01-2010 dans la boîte de repository au lieu du 02-01-2010.

Des pensées?

Merci pour votre aide, Rich

Essaye ça:

  $('.pickupDate').change(function() { var date2 = $('.pickupDate').datepicker('getDate', '+1d'); date2.setDate(date2.getDate()+1); $('.dropoffDate').datepicker('setDate', date2); }); 

Cette réponse m’a vraiment aidé à démarrer (noob) – mais j’ai rencontré un comportement étrange lorsque j’ai défini une date de début du 31/12/2014 et que j’ai ajouté +1 pour définir par défaut la date de fin. Au lieu de me donner la date de fin du 01/01/2015, je recevais le 02/01/2015 (!!!). Cette version parsing les composants de la date de début pour éviter ces anomalies de fin d’année.


  $( "#date_start" ).datepicker({ minDate: 0, dateFormat: "mm/dd/yy", onSelect: function(selected) { $("#date_end").datepicker("option","minDate", selected); // mindate on the End datepicker cannot be less than start date already selected. var date = $(this).datepicker('getDate'); var tempStartDate = new Date(date); var default_end = new Date(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()+1); //this parses date to overcome new year date weirdness $('#date_end').datepicker('setDate', default_end); // Set as default } }); $( "#date_end" ).datepicker({ minDate: 0, dateFormat: "mm/dd/yy", onSelect: function(selected) { $("#date_start").datepicker("option","maxDate", selected); // maxdate on the Start datepicker cannot be more than end date selected. } }); 

Le datepicker (‘setDate’) définit la date dans le datepicket pas dans l’entrée.

Vous devez append la date et la définir dans l’entrée.

 var date2 = $('.pickupDate').datepicker('getDate'); var nextDayDate = new Date(); nextDayDate.setDate(date2.getDate() + 1); $('input').val(nextDayDate);