Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过提供两个日期来限制jquery日期选择器的日期范围?_Jquery_Jquery Ui_Jquery Ui Datepicker - Fatal编程技术网

如何通过提供两个日期来限制jquery日期选择器的日期范围?

如何通过提供两个日期来限制jquery日期选择器的日期范围?,jquery,jquery-ui,jquery-ui-datepicker,Jquery,Jquery Ui,Jquery Ui Datepicker,我有两个日期存储在db中,我使用$.ajax()选择它,我需要的是显示我从db中选择的日期之间的datepicker值 这是我的代码,但它不能正常工作 function setDatePickerSettings(isFisc) { var fSDate, fEDate; $.ajax({ type: "POST", url: '../Asset/Handlers/AjaxGetData.ashx?fisc=1',

我有两个日期存储在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;
}

请提供一些解决方案。我需要datetime选择器,它需要介于该范围之间的值。提前感谢

您的minDate/maxDate语法错误。我建议你看一下,根据你的具体情况进行调整。它看起来像这样:

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

我用了这个,我得到了输出。谢谢大家

 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());
    }
函数setFiscDatePickerSettings(){
var fSDate、fEDate、sDate、fEDate;
变量设置;
sDate=document.getElementById(“”.value.split(getSeparator(document.getElementById(“”.value));
eDate=document.getElementById(“”.value.split(getSeparator(document.getElementById(“”.value));
fSDate=新日期(sDate[2]。子字符串(0,4),sDate[0]-1,sDate[1]);
fEDate=新日期(eDate[2]。子字符串(0,4),eDate[0]-1,eDate[1]);
数据传输设置={
变化月:对,
变化年:是的,
showOn:“两者都有”,
buttonImage:clientURL+“images/calendar.png”,
buttonImageOnly:正确,
showStatus:true,
showOtherMonths:错误,
日期格式:“日/月/年”,
minDate:fSDate,maxDate:fEDate
};
返回DTP设置;
}
函数bindFiscalDatePicker(){
var inputDt=$(“input.datepicker_fisc”);
inputDt.addClass(“仅限数字”);
inputDt.addClass(“允许特殊”);
inputDt.attr(“符号代码”和“/”);
inputDt.datepicker(setFiscDatePickerSettings());
}
这对我很有效

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

我知道这是一篇古老的帖子,但是
@themuffindman
提出的关于无法使用日期限制选项的日期格式的错误是真实存在的,并且只有在选项对齐时才会出现,如他的示例所示

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

var minDate = -20;
var maxDate = "+1M +10D" 

$('body').on('focus',".datepicker", function(){
    $(this).datepicker({ minDate: minDate, maxDate: maxDate },{dateFormat: "dd/mm/yy"});
});

我希望它能帮助其他人。

那么我如何才能将最小值设为2004-4-1,将最大值设为2008-2-12?是否可以设置minDate/maxDate默认值?我尝试了
$.fn.datepicker.defaults.minDate=新日期(2017,1,1)
$.fn.datepicker.defaults.minDate=-20
,但两者似乎都没有work@tgordon18不,如果您使用Chrome调试控制台,您将看到没有
$.fn.datepicker.Default
,更重要的是,设置了该控制台的API,以便创建实例<代码>$.fn.datepicker(选项…)。如果你想设置最小和最大日期,你必须把它作为选项传递给每个实例,从源代码中我可以看到。我把日期格式作为选项集中的最后一项解决了这个问题,例如{dateFormat:“dd/mm/yy”})-完整的解决方案在我下面的答案中。@TheMuffindman我想你在哪里写的“明天之前”是不正确的,但我还是觉得这个答案很有帮助。