2010-12-27 28 views
13

Mam dwie daty, które są przechowywane w db i wybieram go za pomocą $ .ajax() i co jest potrzebne, aby wyświetlić wartości datepicker między datami wybrana z db.Jak ograniczyć zakres dat jquery datepicker przez podanie dwóch dat?

Oto mój kod it.But nie działa prawidłowo

function setDatePickerSettings(isFisc) { 
     var fSDate, fEDate; 
     $.ajax({ 
      type: "POST", 
      url: '../Asset/Handlers/AjaxGetData.ashx?fisc=1', 
      success: function(data) { 
       alert(data); 
       var res = data.split("--");//data will be 4/4/2010 12:00:00--5/4/2011 12:00:00 
       var sDate = res[0].split(getSeparator(res[0])); 
       alert("Separator " + getSeparator(res[1]) + " Starts " + sDate); 
       var eDate = res[1].split(getSeparator(res[1])); 
       alert("End " + eDate); 
       alert("sub " + sDate[0]); 
       fSDate = new Date(sDate[2].substring(0, 4), sDate[0], sDate[1]); 
       alert("Starts " + fSDate.substring(0, 4)); 
       fEDate = new Date(eDate[2].substring(0, 4), eDate[0], eDate[1]); 
       alert("eND " + fEDate.toString()); 

      } 

     }); 
      var dtSettings = { 
     changeMonth: true, 
     changeYear: true, 
     showOn: 'both', 
     buttonImage: clientURL + 'images/calendar.png', 
     buttonImageOnly: true, 
     showStatus: true, 
     showOtherMonths: false, 
     dateFormat: 'dd/mm/yy', 
     minDate:fSDate, //assigning startdate 
     maxDate:fEDate //assigning enddate 
    }; 

    return dtSettings; 
} 

Pls zapewnić pewne rozwiązanie. Potrzebuję próbnika datetime, który wymaga wartości z tego zakresu. Z góry dziękuję

+0

+1 Przydatne pytanie! – gotqn

Odpowiedz

38

Twoja składnia jest błędna dla minDate/maxDate. You can read the documentation on the jQuery UI website where the demo is. Sugeruję, abyś spojrzał na to, aby dopasować go do konkretnego przypadku. Wygląda to mniej więcej tak:

$(".selector").datepicker({ minDate: new Date(2007, 1 - 1, 1) }); 

lub

dodaje uczynią go tak, że nie można niczego poprzedni do dziś wybrać.

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

i uczyni go tak nie można nic odebrać jutro przed

$(".selector").datepicker({ maxDate: 1 }); 

Edycja: Oto jak wstawić własne daty, ale mam problem z dostaniem się do dateformat działa poprawnie, ponieważ widzisz, że określam dateFormat, ale format, który wprowadziłem, ignoruje format daty.

$("#txtDateStart").datepicker({dateFormat:'mm/dd/yy', minDate: new Date(2010,11,12) }); 
+0

następnie Jak mogę dać min jako 2004-4-1 i max jak 2008-2-12? – kbvishnu

+1

@Harie, zaktualizowałem swoją odpowiedź, czy ta pomoc? –

0

Kiedyś ten i mam output.thanks wszystkie

function setFiscDatePickerSettings() { 

     var fSDate, fEDate, sDate, fEDate; 
     var dtSettings; 
     sDate = document.getElementById("<%=hdfFiscStart.ClientID %>").value.split(getSeparator(document.getElementById("<%=hdfFiscStart.ClientID %>").value)); 
     eDate = document.getElementById("<%=hdfFiscEnd.ClientID %>").value.split(getSeparator(document.getElementById("<%=hdfFiscEnd.ClientID %>").value)); 
     fSDate = new Date(sDate[2].substring(0, 4), sDate[0] - 1, sDate[1]); 
     fEDate = new Date(eDate[2].substring(0, 4), eDate[0] - 1, eDate[1]); 
     dtSettings = { 
      changeMonth: true, 
      changeYear: true, 
      showOn: 'both', 
      buttonImage: clientURL + 'images/calendar.png', 
      buttonImageOnly: true, 
      showStatus: true, 
      showOtherMonths: false, 
      dateFormat: 'dd/mm/yy', 
      minDate: fSDate, maxDate: fEDate 
     }; 

     return dtSettings; 
    } 


    function bindFiscalDatePicker() { 
     var inputDt = $("input.datepicker_fisc"); 
     inputDt.addClass("numbers_only"); 
     inputDt.addClass("allow_special"); 
     inputDt.attr("symbolcodes", "/"); 
     inputDt.datepicker(setFiscDatePickerSettings()); 
    } 
1

Ten pracował dla mnie.

$('#date-time-picker').datepicker({ 
    format: 'YYYY-MM-DD', 
    useCurrent: false, 
    showClose: true, 
    minDate: '2018-02-01', 
    maxDate: '2018-03-15', 
})