【问题标题】:jQuery Datepicker - Set Departure Date for 1 Day After Arrival DatejQuery Datepicker - 将出发日期设置为到达日期后 1 天
【发布时间】:2016-07-08 03:43:31
【问题描述】:

我正在创建一个预订小部件,并希望将“出发日期”设置为到达日期后的 1 天。这是我到目前为止的内容,但由于某种原因,它显示的是同一日期而不是第二天。

jQuery(document).ready(function() {
    var nowTemp = new Date();
    var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
    var checkin = jQuery('#arrivalDate').fdatepicker({
        onRender: function (date) {
            return date.valueOf() < now.valueOf() ? 'disabled' : '';
        }
    }).on('changeDate', function (ev) {
        if (ev.date.valueOf() > checkout.date.valueOf()) {
            var newDate = new Date(ev.date);
            newDate.setDate(newDate.getDate() + 1);
            checkout.update(newDate);
        }
        checkin.hide();
        jQuery('#departureDate')[0].focus();
    }).data('datepicker');
    var checkout = jQuery('#departureDate').fdatepicker({
        onRender: function (date) {
            return date.valueOf() <= checkin.date.valueOf() ? 'disabled' : '';
        }
    }).on('changeDate', function (ev) {
        checkout.hide();
    }).data('datepicker');
});

【问题讨论】:

    标签: jquery datepicker


    【解决方案1】:

    这个问题已经在这里Incrementing a date in JavaScript 得到了回答,但如果你不想阅读它。那么你应该改变这个

    var newDate = new Date(ev.date);
    

    到这里

    var newDate = new Date(ev.getDate() + 1);
    

    然后 newDate 将包含当前日期加上您添加的另一天。

    【讨论】:

    • 我在你提到的那一行下面有newDate.setDate(newDate.getDate() + 1);
    • 我知道但 newDate 应该为空,因为它被错误地初始化所以当你尝试newDate.setDate(newDate.getDate() + 1); 时你说 newdDate 应该设置为空加 1。错误在 var newDate = new Date(ev.date);
    猜你喜欢
    • 1970-01-01
    • 2015-07-17
    • 2019-03-07
    • 1970-01-01
    • 2015-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    相关资源
    最近更新 更多