将最大日期值设置为当前日期或从开始日期算起 1 年

Setting max date value to current date OR 1 year from start date

本文关键字:日期 开始 当前日期 设置      更新时间:2023-09-26

我应该怎么做才能限制用户选择从开始日期或当前日期开始超过一年的结束日期。我有这样的代码。

$(function () {
$('#DateFrom').datepicker({
    dateFormat:'d-M-y',
    changeMonth: true,
    changeYear: true,
    minDate: new Date(2000, 7, 23), 
    maxDate: 0,
    onSelect: function() {
        var date = $('#DateFrom').datepicker('getDate');
        date.setTime(date.getTime() + (1000*60*60*24*365));
        $('#DateTo').datepicker('option', 'maxDate', date);
        $('#DateTo').datepicker('option', 'minDate',$('#DateFrom').datepicker('getDate'));
        displayToUser();
    },
});
$('#DateTo').datepicker({
    dateFormat:'d-M-y',
    maxDate: 0,
    changeMonth: true,
    changeYear: true,
    onSelect: displayToUser,
});
});
function displayToUser() {}

这里虽然它限制用户从开始日期起一年内,但它允许用户选择当前日期之外的日期。

示例:如果开始日期是 23-01-2016,则允许选择结束日期到 22-01-2017。我希望它最多是今天的日期。

这样做吗?

$(function () {
    $('#DateFrom').datepicker({
        dateFormat:'d-M-y',
        changeMonth: true,
        changeYear: true,
        minDate: new Date(2000, 7, 23), 
        maxDate: 0,
        onSelect: function() {
            var date = $('#DateFrom').datepicker('getDate');
            date.setTime(date.getTime() + (1000*60*60*24*365));
            var todaysDate = new Date();
            if(date.getTime() > todaysDate.getTime()) date = todaysDate;
            $('#DateTo').datepicker('option', 'maxDate', date);
            $('#DateTo').datepicker('option', 'minDate',$('#DateFrom').datepicker('getDate'));
            displayToUser();
        },
    });
    $('#DateTo').datepicker({
        dateFormat:'d-M-y',
        maxDate: 0,
        changeMonth: true,
        changeYear: true,
        onSelect: displayToUser,
    });
});
function displayToUser() {}

我只添加了这两行

            var todaysDate = new Date();
            if(date.getTime() > todaysDate.getTime()) date = todaysDate;