将一天添加到最小日期(使用日期选择器)

To add one day to minDate (using datapicker)

我这里有一个关于如何将一天添加到 minDate 的代码。我在 Whosebug 中尝试了多种建议的解决方案,但没有成功。

这是我的代码(尝试了各种方法解决后)

$('#cal_mulamhn').datepicker({
      minDate: 0,
      dateFormat: "yy-mm-dd",
      beforeShow: function() {
        $(this).datepicker('option', 'maxDate', $('#cal_tmtmhn').val());
      }
    });
    $('#cal_tmtmhn').datepicker({
      dateFormat: "yy-mm-dd",
      defaultDate: "+1w",
      beforeShow: function(selectedDate) {
        $(this).datepicker('option', 'minDate', addDays(new Date(selectedDate), 1));
        if ($('#cal_mulamhn').val() === '') $(this).datepicker('option', 'minDate', 0);
      }
    });

有人可以帮我解决这个问题吗?

下面的代码片段有两个日期选择器,起始日期和截止日期。在这个例子中,

  • 起始日期的 maxDate 根据所选的截止日期更新
  • 截止日期的 minDate 是根据所选的起始日期
  • 更新的
  • 选择起始日期时,如果尚未选择截止日期,则将下一天设置为截止日期

$(function () {
    $('#cal_mulamhn').datepicker({
        minDate: 0,
        dateFormat: "yy-mm-dd",
        beforeShow: function (input, instance) {
            $(this).datepicker('option', 'maxDate', $('#cal_tmtmhn').val());
        },
        onClose: function (dateText, instance) {
            if (dateText) {
                var $cal_tmtmhn = $('#cal_tmtmhn'), dt_cal_mulamhn = $cal_tmtmhn.data('datepicker'),
                    $this = $(this), dt_this = $this.data('datepicker');
                if (dt_cal_mulamhn.input.val().trim() == "") {
                    var nextDate = new Date(+dt_this.selectedYear, +dt_this.selectedMonth, +dt_this.selectedDay + 1);
                    $cal_tmtmhn.datepicker('setDate', nextDate);
                }
            }
        }
    });
    $('#cal_tmtmhn').datepicker({
        dateFormat: "yy-mm-dd",
        defaultDate: "+1w",
        beforeShow: function (input, instance) {
            var $cal_mulamhn = $('#cal_mulamhn'), $this = $(this);
            var minDate = $cal_mulamhn.val() || 0;
            if (minDate != 0) {
                var dt_cal_mulamhn = $cal_mulamhn.data('datepicker');
                // Generally to date can be same as from date
                minDate = new Date(+dt_cal_mulamhn.selectedYear, +dt_cal_mulamhn.selectedMonth, +dt_cal_mulamhn.selectedDay);
                // If needed to add 1 day to minDate use below code
                // minDate = new Date(+dt_cal_mulamhn.selectedYear, +dt_cal_mulamhn.selectedMonth, +dt_cal_mulamhn.selectedDay + 1);
            }
            $this.datepicker('option', 'minDate', minDate);
        }
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" integrity="sha512-uto9mlQzrs59VwILcLiRYeLKPPbS/bT71da/OEBYEwcdNUk8jYIy+D176RYoop1Da+f9mvkYrmj5MCLZWEtQuA==" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" integrity="sha512-aOG0c6nPNzGk+5zjwyJaoRUgCdOrfSDhmMID2u4+OIslr0GjpLKo7Xm0Ao3xmpM4T8AmIouRkqwj1nrdVsLKEQ==" crossorigin="anonymous" />


<p>
    From: <input id="cal_mulamhn"/>
</p>
<p>
    To: <input id="cal_tmtmhn"/>
</p>