将一天添加到最小日期(使用日期选择器)
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>
我这里有一个关于如何将一天添加到 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>