【问题标题】:To add one day to minDate (using datapicker)将一天添加到最小日期(使用 datepicker)
【发布时间】:2021-07-15 05:26:28
【问题描述】:

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

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

$('#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);
      }
    });

有人可以帮我吗?

【问题讨论】:

    标签: javascript php jquery codeigniter


    【解决方案1】:

    下面的 sn-p 有两个日期选择器,从日期和到日期。在这个例子中,

    • 从日期的maxDate 会根据所选的当前日期进行更新
    • to-date 的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>

    【讨论】:

    • 感谢您的帮助,Wazeed。但我想这样做,例如:我选择了 21/4/2020 作为起始日期,并且我想在迄今为止的日期默认设置,所以它会在日历上变成 22/4/2020。
    • @WulanYaya,我已经更新了答案,使用 onClose event 在从日期设置默认值。请检查一下,希望对您有所帮助。
    • 我已经看到并理解它是如何工作的。它在我的代码中也可以正常工作。这就是我寻找的答案。非常感谢你的帮助 ! :))
    猜你喜欢
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2023-03-06
    • 2017-04-22
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多