2013-02-01 48 views
6

Ho impostato e funzionante il selettore di date jQuery ma desidero ricevere assistenza per l'impostazione delle opzioni minDate e maxDate. Il mio codice attuale è sotto (senza queste opzioni). Come posso impostare il minDate come 3 mesi prima del valore predefinito e maxDate come 28 giorni dopo il valore predefinito?jQuery DatePicker Min Max date

var expdisp = $("#expdisp").attr("value"); 

$("#expirydate").datepicker({ 
    showOn: "button", 
    buttonImage: "images/calendar.gif", 
    buttonImageOnly: true, 
    dateFormat: "dd/mm/yy", 
    defaultDate: expdisp, 
    showOtherMonths: true, 
    selectOtherMonths: true, 
    changeMonth: true, 
    changeYear: true, 
}); 

risposta

12
$(function() { 

    $("#datepicker").datepicker({ 
     changeYear: true, 
     minDate: '-3M', 
     maxDate: '+28D', 
    }); 
}); 

JSFiddle Demo

UPDATE

È possibile calcolare giro max e min date valide a partire dalla data di default, quindi assegnarlo al selezionatore di date.

var expdisp = $("#expdisp").attr("value"); 

$("#expirydate").datepicker({ 
    showOn: "button", 
    buttonImage: "images/calendar.gif", 
    buttonImageOnly: true, 
    dateFormat: "dd/mm/yy", 
    defaultDate: expdisp, 
    showOtherMonths: true, 
    selectOtherMonths: true, 
    changeMonth: true, 
    changeYear: true, 

    minDate: '-3M', 
    maxDate: '+28D', 
}); 

Update Demo

+1

Questo è calcolato da "oggi" e non ciò che è impostato nel "defaultDate" – Rob

+0

@Rob - Trova demo aggiornata – MuhammadHani

+0

Grazie per questo, sta ancora calcolando il minimo/il massimo da oggi. L'ho risolto adesso - sto calcolando i valori in PHP e poi li ho passati quando ho avviato datePicker. – Rob

0

Il tuo può provare:

var expdisp = $("#expdisp").attr("value"); 

$("#expirydate").datepicker({ 
    showOn: "button", 
    buttonImage: "images/calendar.gif", 
    buttonImageOnly: true, 
    dateFormat: "dd/mm/yy", 
    defaultDate: expdisp, 
    showOtherMonths: true, 
    selectOtherMonths: true, 
    changeMonth: true, 
    changeYear: true, 

    minDate: -3M, 
    maxDate: +28D 
}); 
+0

Ho provato questo, ma i valori sono calcolati da 'oggi' e non tutto ciò che è in 'defaultDate' – Rob

+0

Ooppps. Che ne dici di questo: http://stackoverflow.com/questions/7395771/jquery-ui-datepicker-maxdate Basta passare la data alla funzione e usarla in var maxDate = new Date (defaultDate); – SteveW

2

MaxDate: - Imposta la data massima che può essere selezionato. Accetta un oggetto data o un numero relativo. Ad esempio: +7 o una stringa come + 6m.

minDate: - Imposta la data minima che può essere selezionata. Accetta un numero, un oggetto data o una stringa.

$(document).ready(function() { 
    $("#date").datepicker({ 
     minDate: -3, 
     maxDate: "1w" 
    }); 

});

fare riferimento: - set Minimum and maximum date to jquery datepicker

0

È inoltre possibile utilizzare intervalli di date specifiche. Ho aggiunto una data di inizio minima con un massimo di + 14D. Devi solo ricordare di essere coerente con il formato della data e utilizzare "/" anziché "-" tra MM/GG/AAAA.

$('#Date').datepicker({ 
 
    changeMonth: true, 
 
    minDate: '10/19/2016', 
 
    maxDate: '+14D', 
 
});