根据月份更改日期选择器

时间:2019-05-04 05:37:45

标签: jquery

我的项目有一个日期选择器。它显示最小日期为一个月。一个月根据当前月份的总天数进行更改。如果当前月份有31天,则显示前31天。如果当前月份有30天,则表示显示了前30天。

我试图添加条件是否为最小日期。如果当前月份有30天,则将最小日期设置为30天,如果当前月份有31天,则将最小日期设置为31天。但是当条件应用时,它显示错误。

$(function() {
    $('#datePick').multiDatesPicker({
        beforeShowDay: function(date) {
            var day = date.getDay();
            return [day != 0 && day != 6];
            }
        ,
        // For disabling all "Sundays"
        dateFormat : "d/m/yy",
        maxDate : "+3m",
        minDate : "-1m",
        multidate : true,
        addDisabledDates : <%= raw @holidays %>
    });
});

我想基于当前月份的总天数设置minDate。谁能帮我找到解决方案。.预先感谢..

2 个答案:

答案 0 :(得分:0)

假设您正在将 MultiDatesPicker用于jQuery UI https://dubrox.github.io/Multiple-Dates-Picker-for-jQuery-UI/

var month = new Date().Month;
var pastDays = (month == 2 || month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;

$('#mdp-demo').multiDatesPicker({
    minDate: -pastDays,
    maxDate: 30 // +30 days from today
});

使用当前日期,我得到一个月,然后,如果该月是30天长的月份或2月中的任何一个,我会将pastDays设置为30,否则将其设置为31。

var month = new Date().Month;
var pastDays = (month == 2 || month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;

$('#mdp-demo').multiDatesPicker({
    minDate: -pastDays,
    maxDate: 30 // +30 days from today
});
<link href="https://cdn.rawgit.com/dubrox/Multiple-Dates-Picker-for-jQuery-UI/master/jquery-ui.multidatespicker.css" rel="stylesheet"/>
<link href="https://code.jquery.com/ui/1.12.1/themes/pepper-grinder/jquery-ui.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
<script src="https://cdn.rawgit.com/dubrox/Multiple-Dates-Picker-for-jQuery-UI/master/jquery-ui.multidatespicker.js"></script>
<div id="mdp-demo"></div>

答案 1 :(得分:0)

    $(function() {
        const _current_date = new Date();
        const month = _current_date.getMonth()+1;
        const _min_days = (month == 2 || month == 4 || month == 6 || month == 9 || month == 11) ? 30 : 31;
        $('#datePick').multiDatesPicker({
            beforeShowDay: function(date) {
                var day = date.getDay();
                return [day != 0 && day != 6];
        }, // For disabling all "Sundays"
        dateFormat : "d/m/yy",
        maxDate : "+3m",
        minDate : `-${_min_days}d`,
        multidate : true,
        addDisabledDates : <%= raw @holidays %>
    });

});

这可能对您有帮助!