javascript - 日期选择器范围不允许结帐日期为同一天
问题描述
我试图在同一天办理入住和退房日期,但它不允许我这样做。请帮助我做到这一点。
var ajax_check_var = '';
$('.location_search_results_ul').hide();
$("#check_in_time").datepicker({
showOtherMonths: true,
dateFormat: 'dd-mm-yy',
minDate: 0,
//for calender Css
beforeShowDay: function (date) {
return highlightDateBorder($("#check_in_time").val(), date);
},
onSelect: function(selectedDate) {
var date_format = selectedDate.split("-");
var selectedDate = new Date($.datepicker.formatDate('yy-mm-dd', new Date(date_format[2], date_format[1] - 1, date_format[0])));
selectedDate.setDate(selectedDate.getDate() + 1);
$("#check_out_time").datepicker("option", "minDate", selectedDate);
},
});
$("#check_out_time").datepicker({
showOtherMonths: true,
dateFormat: 'dd-mm-yy',
//for calender Css
beforeShowDay: function (date) {
return highlightDateBorder($("#check_out_time").val(), date);
},
beforeShow: function (input, instance) {
var date_to = $('#check_in_time').val();
if (typeof date_to != 'undefined' && date_to != '') {
var date_format = date_to.split("-");
var selectedDate = new Date($.datepicker.formatDate('yy-mm-dd', new Date(date_format[2], date_format[1] - 1, date_format[0])));
selectedDate.setDate(selectedDate.getDate()+1);
$("#check_out_time").datepicker("option", "minDate", selectedDate);
} else {
var date_format = new Date();
var selectedDate = new Date($.datepicker.formatDate('yy-mm-dd', new Date()));
selectedDate.setDate(selectedDate.getDate()+1);
$("#check_out_time").datepicker("option", "minDate", selectedDate);
}
}
});
解决方案
在您的代码中多次minDate
将check_out_time
datepicker 设置为selectedDate
. 但是selectedDate
,由于以下行,从来都不是实际选择的日期,而是选择的日期 + 1。
selectedDate.setDate(selectedDate.getDate()+1)
更改应该允许您选择同一天。
我还建议清理所有重复的代码,你有很多重复几次的行为,这使得阅读变得一团糟:)你可以将三行移到一个函数中并调用它,而不是仅仅重复基本相同三个地方的逻辑。
const date_format = selectedDate.split("-");
setMinData(new Date(date_format[2], date_format[1] - 1, date_format[0]));
function setMinDate(date) {
var selectedDate = new Date($.datepicker.formatDate('yy-mm-dd', date));
selectedDate.setDate(selectedDate.getDate() + 1);
$("#check_out_time").datepicker("option", "minDate", selectedDate);
}
推荐阅读
- google-sheets-formula - 带有 UTC 时间戳的 Google 表格 Countif 函数
- php - 在 laravel 上比较来自 db 的日期使用 sql
- mysql - Django中的SQL instr等价物
- mule - Mule 4.3 社区版的可重复文件存储流
- c# - Navisworks,如何获得有关 ModelItemCollection 的位置
- c# - 同时在 2 个不同的环境(DEV 和 STaging)上运行测试,而这两个环境都有 2 个不同的 url
- java - 将双精度值转换为压缩十进制 COBOL 格式 PIC S9(5)V9(4) COMP-3/压缩十进制 COBOL 格式 PIC S9(3)V9(4) JAVA 中的 COMP-3 格式
- python - 如何将 python 中的两个字典列表与可能不同的键值对合并?
- discord - 创建消息组件(按钮) discord.js
- html - 如何在 bootstrap.min.css 文件中应用更改