如何通过给出两个日期来限制jquery datepicker的日期范围?

我有两个日期存储在db中,并使用$ .ajax()选择它,我需要的是显示我从db中选择的日期之间的datepicker值。

这是我的代码。但是它无法正常工作

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

请提供一些解决方案。 我需要日期时间选择器,它需要该范围之间的值。 提前致谢

你的语法对于minDate / maxDate是错误的。 您可以在演示所在的jQuery UI网站上阅读文档 。 我建议你看一下它来根据你的具体情况量身定做。 它看起来像这样:

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

要么

以下内容将使您无法选择今天之前的任何内容。

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

这将使你在明天之前不能选择任何东西

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

编辑:这是你如何插入自己的日期,但我有一个问题让dateFormat正常工作,因为你可以看到我指定了dateFormat,但我实际放入的格式是忽略dateformat。

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

这对我有用。

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

我使用了这个,我得到了输出。谢谢所有

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

我知道这是一个古老的post,但是@TheMuffinMan提出的关于无法使用日期限制选项的日期格式的错误是真实的,并且似乎只有在选项如他的例子中的内联时才浮出水面。

如果你必须使用这种格式,并且如果有人仍然感兴趣,那么解决它的方法是将日期格式选项作为集合中的最后一个选项。 例如,下面的代码对我来说完美无瑕。

 var minDate = -20; var maxDate = "+1M +10D" $('body').on('focus',".datepicker", function(){ $(this).datepicker({ minDate: minDate, maxDate: maxDate },{dateFormat: "dd/mm/yy"}); }); 

我希望它可以帮助别人。