简体   繁体   中英

set end Date after select start date

JSFIDDLE

How can I set end date which must be 1 day after than start date?

$("#beginDate").datepicker({
    minDate: 1,
    changeMonth: true,
    dateFormat: 'mm/dd/yy',
    onClose: function (selectedDate, instance) {
        if (selectedDate != '') {
            $("#endDate").datepicker("option", "minDate", selectedDate);
            var date = $.datepicker.parseDate(instance.settings.dateFormat, selectedDate, instance.settings);
            date.setMonth(date.getMonth() + 3);
            console.log(selectedDate, date);
            $("#endDate").datepicker("option", "minDate", selectedDate);
            $("#endDate").datepicker("option", "maxDate", date);
        }
    }
});

Just update one line in your code onclose event of beginDatePicker use this line

var minDate2 = new Date(selectedDate);
minDate2.setDate(minDate2.getDate() + 1);
$("#endDate").datepicker("option", "minDate", minDate2);

instead of

$("#endDate").datepicker("option", "minDate", selectedDate);

fiddle

For example, in this sample code, startDatePicker is selected as 2014-3-18, change event of startDatePicker sets the minDate of endDatePicker 2014-3-19. It locks the cells before this date. I hope it helps...

        $("#startDatePicker").datepicker({
        dateFormat: 'yy-mm-dd',
        changeMonth: true,
        minDate: new Date(),
        maxDate: '+2y',
        onSelect: function (date) {

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

            $("endDatePicker").datepicker("option", "minDate", endDate);
            $("endDatePicker").datepicker("option", "maxDate", '+2y');

        }
    });

    $("endDatePicker").datepicker({
        dateFormat: 'yy-mm-dd',
        changeMonth: true
    });

Make a date difference. It will invisible the date.

$(function() {
    $( "#beginDate, #endDate" ).datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        onSelect: function( selectedDate ) {
            if(this.id == 'beginDate'){
              var dateMin = $('#beginDate').datepicker("getDate");
              var rMin = new Date(dateMin.getFullYear(), dateMin.getMonth(),dateMin.getDate() + 1); 
              $('#endDate').datepicker("option","minDate",rMin);
              $('#endDate').datepicker('setDate', rMin);                    
            }

        }
    });

Issue is that datepicker i expecting a date datatype.

            var date = new Date(selectedDate);
            date.setDate(date.getDate() +1);
            console.log(selectedDate, date);
            $("#endDate").datepicker("option", "minDate", date);
            $("#endDate").datepicker("option", "maxDate", date);

Updated jsFiddle

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM