Frage jQuery Date Picker - deaktivieren Sie vergangene Termine


Ich versuche, einen Datumsbereich mit der UI-Datumsauswahl auszuwählen.

Im Feld von / zu können Personen Daten, die vor dem heutigen Tag liegen, nicht anzeigen oder auswählen.

Das ist mein Code:

$(function() {
    var dates = $( "#from, #to" ).datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        onSelect: function( selectedDate ) {
            var option = this.id == "from" ? "minDate" : "maxDate",
                instance = $( this ).data( "datepicker" ),
                date = $.datepicker.parseDate(
                    instance.settings.dateFormat ||
                    $.datepicker._defaults.dateFormat,
                    selectedDate, instance.settings );
            dates.not( this ).datepicker( "option", option, date );
        }
    });
});

Kann mir jemand sagen, wie man Daten vor dem heutigen Datum deaktiviert?


75
2017-12-02 12:31


Ursprung


Antworten:


Sie müssen ein neues Datumsobjekt erstellen und es als festlegen minDate wenn Sie die Datumsauswahl initialisieren

<label for="from">From</label> <input type="text" id="from" name="from"/> <label for="to">to</label> <input type="text" id="to" name="to"/>

var dateToday = new Date();
var dates = $("#from, #to").datepicker({
    defaultDate: "+1w",
    changeMonth: true,
    numberOfMonths: 3,
    minDate: dateToday,
    onSelect: function(selectedDate) {
        var option = this.id == "from" ? "minDate" : "maxDate",
            instance = $(this).data("datepicker"),
            date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, selectedDate, instance.settings);
        dates.not(this).datepicker("option", option, date);
    }
});

Bearbeiten - Von Ihrem Kommentar aus funktioniert es jetzt wie erwartet http://jsfiddle.net/nicolapeluchetti/dAyzq/1/


93
2017-12-02 12:53



Deklarieren Sie die Variable dateToday und verwenden Sie die Funktion Date (), um sie festzulegen. Verwenden Sie dann diese Variable, um minDate als Parameter von datepicker zuzuordnen.

var dateToday = new Date(); 
$(function() {
    $( "#datepicker" ).datepicker({
        numberOfMonths: 3,
        showButtonPanel: true,
        minDate: dateToday
    });
});

Das war's ... Die obige Antwort war wirklich hilfreich ... macht weiter so Jungs ...


66
2018-04-02 14:28



$('#datepicker-dep').datepicker({
    minDate: 0
});

minDate:0 funktioniert bei mir.


42
2017-10-15 06:12



Verwenden Sie die Option "minDate", um das früheste zulässige Datum zu beschränken. Der Wert "0" bedeutet heute (0 Tage ab heute):

    $(document).ready(function () {
        $("#txtdate").datepicker({
            minDate: 0,
            // ...
        });
    });

Dokumente hier: http://api.jqueryui.com/datepicker/#option-minDate


14
2018-02-27 13:07



Nur um das hinzuzufügen:

Wenn Sie das auch müssen Verhindern Sie, dass der Benutzer manuell eingibt Ein Datum in der Vergangenheit, das ist eine mögliche Lösung. Das haben wir getan (basierend auf @Nicola Peluchettis Antwort)

var dateToday = new Date();

$("#myDatePickerInput").change(function () {
    var updatedDate = $(this).val();
    var instance = $(this).data("datepicker");
    var date = $.datepicker.parseDate(instance.settings.dateFormat || $.datepicker._defaults.dateFormat, updatedDate, instance.settings);

    if (date < dateToday) {
        $(this).datepicker("setDate", dateToday);
    }
});

Dies bedeutet, dass der Wert auf das heutige Datum geändert wird, wenn der Benutzer manuell ein Datum in der Vergangenheit eingibt.


7
2018-05-14 08:15



Live-Demo ,Versuche dies,

    $('#from').datepicker(
     { 
        minDate: 0,
        beforeShow: function() {
        $(this).datepicker('option', 'maxDate', $('#to').val());
      }
   });
  $('#to').datepicker(
     {
        defaultDate: "+1w",
        beforeShow: function() {
        $(this).datepicker('option', 'minDate', $('#from').val());
        if ($('#from').val() === '') $(this).datepicker('option', 'minDate', 0);                             
     }
   });

4
2017-07-11 13:24



jQuery API Dokumentation - Datumsauswahl

Das minimal wählbare Datum. Wenn auf eingestellt nullEs gibt kein Minimum.

Mehrere Typen unterstützt:

Datum: Ein Datumsobjekt, das das Mindestdatum enthält.
Nummer: Eine Reihe von Tagen ab heute. Beispielsweise 2 repräsentiert two days von heute und morgen -1 repräsentiert yesterday.
Zeichenfolge: Eine Zeichenfolge in dem Format, das von dateFormat Option oder ein relatives Datum.
Relative Daten müssen Wert- und Periodenpaare enthalten. gültige Perioden sind y zum years, m zum months, w zum weeks, und d zum days. Beispielsweise, +1m +7d repräsentiert one month and seven days von today.

Um vorherige Datumsangaben außer heute nicht anzuzeigen

$('#datepicker').datepicker({minDate: 0});

2
2017-09-16 11:39