minDate 没有被设置?

Posted

技术标签:

【中文标题】minDate 没有被设置?【英文标题】:minDate is not being set? 【发布时间】:2020-01-05 05:24:58 【问题描述】:

我有这个以前用过的 jQuery UI 日期选择器。由于某种原因,它不适用于这个项目。它正确打印日期,我根本不明白为什么它不起作用。

我已经设法让它以某种方式对更改做出反应,但如果我将日期设置为 11 日之后,它不会让我在第二个日期选择器中更改任何内容。如果我在 11 号之前选择一个日期,它不会设置 minDate(或者不是我能看到的)

我可以通过控制台记录它并返回正确的格式。

从旧项目中尝试了我的旧代码。它在这里不起作用,但在另一个项目上它起作用?

我尝试在日期选择器上使用“销毁”。 我尝试将其设置为选项。 我尝试从 onSelect 之外的函数设置思维导图。

// Check for changes in dates
jQuery('.project--create-datestart, .project--create-dateend').datepicker(
    language: 'da',
    dateFormat: 'dd-mm-yyyy',
    onSelect: function(formattedDate, date, inst) 

    jQuery('.project--create-dateend').datepicker("destroy");
    jQuery('.project--create-dateend').datepicker( minDate: new Date(formattedDate))


    jQuery('.project--create-button').attr('disabled', false);
    jQuery('.project--create-button').addClass('success');

    needToConfirm = true;

)

我需要让第一个日期选择器在第二个日期选择器上设置 minDate。

【问题讨论】:

你试过console.log(new Date(formattedDate))吗?我希望它将天解析为月,将月解析为天。您使用的日期选择器是否与 this one 不同?我试图重现您的问题,但这需要dateFormat: 'dd-mm-yy' @barbsan 是的。它以正确的格式 dd-mm-yyyy 输出日期。在开始日期选择器和结束时。就像第二个(结束)日期选择器只是不想听...... new Date("dd-mm-yyyy")返回Date,月份设置为dd,day设置为mm,我没有问formattedDate的格式是否正确,我让你看一下Date对象 【参考方案1】:
$(".project--create-datestart").datepicker( 
    dateFormat: 'dd-mm-yyyy',
    changeMonth: true,
    minDate: new Date(),
    maxDate: '+2y',
    language: 'da',
    onSelect: function(date)

        var selectedDate = new Date(date);
        var msecsInADay = 86400000;
        var endDate = new Date(selectedDate.getTime() + msecsInADay);

       //Set Minimum Date of project--create-dateend After Selected Date of project--create-datestart
        $(".project--create-dateend").datepicker( "option", "minDate", endDate );
        $(".project--create-dateend").datepicker( "option", "maxDate", '+2y' );

    
);

$(".project--create-dateend").datepicker( 
    dateFormat: 'dd-mm-yyyy',
    changeMonth: true
);

【讨论】:

对我来说它返回 TypeError: t.getFullYear is not a function 它应该可以工作。单独试试这个。 var start = new Date(document.getElementById('project--create-dateend').value); var y = start.getFullYear();【参考方案2】:

你可以试试这些代码可能对你有帮助。

<div class="col-sm-4 form-group">
            <b>From :*</b><br>
            <p><input title="From Date" placeholder="dd/mm/yyyy" class="form-control fromDate" oninput="this.className = ''" name="fromDate" id="fromDate"></p>
 </div>
 <div class="col-sm-4 form-group">
        <b>To :*</b><br>
        <p><input title="To Date" placeholder="dd/mm/yyyy" class="form-control toDate" oninput="this.className = ''" name="toDate" id="toDate"></p>
 </div>



<script type="text/javascript">
jQuery(document).ready(function() 
    defaultDateValidation();
);
function defaultDateValidation()    
    $(".fromDate").datepicker( 
        dateFormat: "dd/mm/yy"
    ); 
     $(".toDate").datepicker( 
             dateFormat: "dd/mm/yy"
    );
     $(".fromDate").change(function() 
            test = $(this).datepicker('getDate');
            testm = new Date(test.getTime());
            testm.setDate(testm.getDate() + 1);
            $(".toDate").datepicker("option", "minDate", testm);
    );

</script>

【讨论】:

【参考方案3】:

尝试setStartDate 而不是minDate

【讨论】:

以上是关于minDate 没有被设置?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 DatePickerDialog 中的 minDate 设置为 2 天后

在javascript中为datepicker设置maxDate和minDate,不起作用

设置 minDate 以防止在开始日期之前选择结束日期

在 DatePicker 上设置 MinDate 会将 CalendarView 移动到 1964

在 kitkat 上设置 minDate 或 maxDate 时,Android DatePicker 崩溃

DataTimePicker 怎样设置可以不能选择当前日期之后的时间