Selettore date jQuery – disabilita le date passate

Sto provando ad avere una selezione dell’intervallo di date usando il selettore di date dell’interfaccia utente.

nel campo da / a, le persone non dovrebbero essere in grado di visualizzare o selezionare date precedenti al giorno presente.

Questo è il mio codice:

$(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 ); } }); }); 

Qualcuno può dirmi come disabilitare le date precedenti alla data attuale.

    È necessario creare un nuovo object data e impostarlo come minDate quando si inizializzano i datepickers

         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); } }); 

    Modifica – dal tuo commento ora funziona come previsto http://jsfiddle.net/nicolapeluchetti/dAyzq/1/

    Declare dateToday variable e usa la funzione Date () per impostarlo .. quindi usa quella variabile per assegnare a minDate che è parametro di datepicker.

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

    Ecco … la risposta sopra è stata davvero d’aiuto … continua così ragazzi

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

    minDate:0 funziona per me.

    Utilizzare l’opzione “minDate” per limitare la prima data consentita. Il valore “0” significa oggi (0 giorni da oggi):

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

    Documenti qui: http://api.jqueryui.com/datepicker/#option-minDate

    Solo per aggiungere a questo:

    Se è anche necessario impedire all’utente di digitare manualmente una data nel passato, questa è una ansible soluzione. Questo è quello che abbiamo finito (basato sulla risposta di @Nicola Peluchetti)

     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); } }); 

    Quello che fa è cambiare il valore alla data odierna se l'utente digita manualmente una data nel passato.

    Demo dal vivo , prova questo,

      $('#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); } }); 

    Documentazione API jQuery – datepicker

    La data minima selezionabile. Se impostato su null , non c’è un minimo.

    Tipi multipli supportati:

    Data: un object data contenente la data minima.
    Numero: un numero di giorni da oggi. Ad esempio 2 rappresenta two days da oggi e -1 rappresenta yesterday .
    Stringa: una stringa nel formato definito dall’opzione dateFormat o una data relativa.
    Le date relative devono contenere coppie di valori e periodi; i periodi validi sono y per years , m per months , w per weeks e d per days . Ad esempio, +1m +7d rappresenta one month and seven days da today .

    Per non visualizzare le date precedenti ad oggi

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

    L’ attributo ” mindate ” dovrebbe essere usato per disabilitare le date passate in jquery datepicker.

    minDate: new Date () O minDate: ‘0’ è la chiave per questo.

     Ex: $(function() { $( "#datepicker" ).datepicker({minDate: new Date()}); }); 

    O

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

    basta sostituire il codice:

    vecchio codice:

     $("#dateSelect").datepicker({ showOtherMonths: true, selectOtherMonths: true, changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: 'yy-mm-dd' }); 

    nuovo codice:

     $("#dateSelect").datepicker({ showOtherMonths: true, selectOtherMonths: true, changeMonth: true, changeYear: true, showButtonPanel: true, dateFormat: 'yy-mm-dd', minDate: 0 }); 

    imposta l’attributo startDate di datepicker, funziona, di seguito è riportato il codice di lavoro

     $(function(){ $('#datepicker').datepicker({ startDate: '-0m' //endDate: '+2d' }).on('changeDate', function(ev){ $('#sDate1').text($('#datepicker').data('date')); $('#datepicker').datepicker('hide'); }); }) 

    Questo è un modo semplice per farlo

     $('#datepicker').datepicker('setStartDate', new Date()); 

    anche noi possiamo disabilitare i giorni futuri

     $('#datepicker').datepicker('setEndDate', new Date()); 

    devi dichiarare la data corrente in variabili come questa

      $(function() { var date = new Date(); var currentMonth = date.getMonth(); var currentDate = date.getDate(); var currentYear = date.getFullYear(); $('#datepicker').datepicker({ minDate: new Date(currentYear, currentMonth, currentDate) }); }) 
     $( "#date" ).datetimepicker({startDate:new Date()}).datetimepicker('update', new Date()); 

    new Date() : la data corrente della data precedente viene bloccata. 100% di lavoro

    Ho creato la funzione per disabilitare la data precedente, disabilitare i giorni flessibili del fine settimana (come sabato, domenica)

    Stiamo usando il metodo beforeShowDay del plug-in datepicker dell’interfaccia utente jQuery.

      var NotBeforeToday = function(date) { var now = new Date(); //this gets the current date and time if (date.getFullYear() == now.getFullYear() && date.getMonth() == now.getMonth() && date.getDate() >= now.getDate() && (date.getDay() > 0 && date.getDay() < 6) ) return [true,""]; if (date.getFullYear() >= now.getFullYear() && date.getMonth() > now.getMonth() && (date.getDay() > 0 && date.getDay() < 6)) return [true,""]; if (date.getFullYear() > now.getFullYear() && (date.getDay() > 0 && date.getDay() < 6)) return [true,""]; return [false,""]; } jQuery("#datepicker").datepicker({ beforeShowDay: NotBeforeToday });