jQuery UI Datepicker: 6 Monate zu einem anderen Datepicker hinzufügen

Lesezeit: 2 Minuten

jQuery UI Datepicker 6 Monate zu einem anderen Datepicker hinzufugen
Ben Totoro

Ich habe zwei Datepicker-Kalender, einen für ein Startdatum und einen für ein Enddatum.

Was ich möchte, ist, das defaultDate des zweiten Datepickers dynamisch so einzustellen, dass es sechs Monate nach dem ersten liegt, wenn das erste Datum ausgewählt wird.

Ich weiß, wie man dem zweiten Datepicker das erste Datum meldet, aber ich weiß nicht, wie man dem ersten sechs Monate hinzufügt und es dann als Standarddatum des zweiten Datepickers hinzufügt

Hier ist mein Code:

$(".firstcal").datepicker({
    dateFormat: "dd/mm/yy",
    onSelect: function (dateText, inst) {
        var date = $.datepicker.parseDate('dd/mm/yy', dateText);
        var $sec_date = $(".secondcal");
        $sec_date.datepicker("option", "defaultDate", date);
    }
});
$(".secondcal").datepicker({
    dateFormat: "dd/mm/yy"
});

Vielen dank für Deine Hilfe

Bearbeiten:

In datePicker existiert die Funktion zum Hinzufügen von sechs Monaten zu einem Datum: Sie trägt die Bezeichnung “+6M”. Ich möchte nur “+6M” zum ersten Datum hinzufügen und es als Standarddatum zum zweiten senden.

jQuery UI Datepicker 6 Monate zu einem anderen Datepicker hinzufugen
Salman A

  1. Analysieren Sie die ausgewählte Datumszeichenfolge in ein JavaScript-Datumsobjekt.
  2. Benutzen Date.getMonth() und Date.setMonth() um den Monat zu ändern. Letztere Funktion erhöht/verringert das Jahr bei Bedarf automatisch.
  3. Verwenden Sie die jQuery-Datumsauswahl setDate Methode zum Ändern des Datums des zweiten Datepickers (Einstellung der defaultDate führt nicht zu den gewünschten Ergebnissen).
onSelect: function(dateText, instance) {
    date = $.datepicker.parseDate(instance.settings.dateFormat, dateText, instance.settings);
    date.setMonth(date.getMonth() + 6);
    $(".secondcal").datepicker("setDate", date);
}

Demo hier

Um einem Datum 6 Monate hinzuzufügen

 var second_date = new Date(date);
 second_date.setMonth(second_date.getMonth()+6); //+6 is however many months

dann aktualisiere den Wert

$("#secondcal").val(second_date);  //It is probably better to work with ID

Hier ist der Code, den ich verwende, um das maximale Datum eines zweiten Dialogs auf einen Monat nach dem ersten festzulegen. Sie würden stattdessen einfach das Standarddatum festlegen

   var beginsDate=$('#dlg_begins').datepicker('getDate');
   var monthMillisec=30*24*60*60*1000;
   var maxDate=new Date();
   maxDate.setTime( beginsDate.getTime() + monthMillisec );

   $('#dlg_expires').datepicker('option',
   {
       'maxDate':maxDate,
       'minDate':beginsDate
   });

  • Danke Matt, es hilft mir, aber teilweise: da jeder Monat nicht gleich viele Tage hat, ist das Ergebnis falsch. Wenn ich 15778463000 Millisekunden hinzufüge (Hexe ist 182,62 Tage), wird der erste Juli auf den 30. Dezember anstatt auf den ersten Januar gesetzt

    – Ben Totoro

    21. Juni ’12 um 12:56

.

217040cookie-checkjQuery UI Datepicker: 6 Monate zu einem anderen Datepicker hinzufügen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy