Javascript 在日期选择器中添加日期时出现问题

Javascript 在日期选择器中添加日期时出现问题,javascript,ajax,jquery,jquery-ui-datepicker,Javascript,Ajax,Jquery,Jquery Ui Datepicker,我有两个日期选择器绑定到两个文本框(Chkin和Chkout)。当我在Chkin中选择一个日期时,我应该在Chkout中显示Chkin+1个日期。但在某些情况下,Chkout日期没有正确填写。有人能告诉我哪里出了问题吗? 我的代码是- $("#Chkin").datepicker({ dateFormat: $("#Dateformat").val(), minDate: '+0', onC

我有两个日期选择器绑定到两个文本框(
Chkin
Chkout
)。当我在
Chkin
中选择一个日期时,我应该在
Chkout
中显示
Chkin
+1个日期。但在某些情况下,
Chkout
日期没有正确填写。有人能告诉我哪里出了问题吗? 我的代码是-

$("#Chkin").datepicker({ 
            dateFormat:  $("#Dateformat").val(),
            minDate: '+0',               
            onClose: function (dateText, inst) {
                if ($("#Dateformat").val() == "dd/mm/yy") {
                    var parts = dateText.split("/");
                    var cin = new Date(Number(parts[2]), Number(parts[1]) - 1, Number(parts[0]));
                }
                else {
                    var cin = new Date(dateText);
                }
                var cout = new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+1); 
                var maxOut= new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+7);
                $("#Chkout").datepicker('option', 'minDate', cout); 
                $("#Chkout").datepicker('option', 'maxDate', maxOut);
                showDays();
            } 
        });
        var cin = new Date($("#Chkin").val());
        var cout = new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+1);   
        var maxOut= new Date(cin.getFullYear(), cin.getMonth(), cin.getDate()+7);
        $("#Chkout").datepicker({ 
            dateFormat:  $("#ctl00_ContentPlaceHolder1_hdnDateformat").val(), 
            minDate: cout, 
            maxDate: maxOut,
            onSelect: showDays });

PS:
Chkin
Chkout
值最初与一些日期绑定。

这是因为当
Chkin
关闭时,您没有使用
Chkin
+1设置
Chkout

在你的
$(“#Chkin”).datepicker({})中添加
$(“#Chkout”).datepicker(“setDate”,cout)调用前函数
showDays()

说明:

对于当前代码,如果
Chkin
中的选定值小于7天或等于
Chkout
Chkout
将自动设置为
Chkin
+1。但是,否则,
Chkout
将不会更改

例如:

更改
Chkin
之前:

Chkin = 1 August 2013
Chkout = 5 August 2013
Chkout's minDate and maxDate = 2 August 2013 and 8 August 2013
案例1-
Chkin
变更为2013年7月22日:

Chkout = 23 July 2013
Chkout's minDate and maxDate = 23 July 2013 and 29 July 2013
案例1说明:
Chkout
已更改,因为旧Chkout的值不在新Chkout的minDate和maxDate的范围内

案例2-
Chkin
变更为2013年8月3日:

Chkout = 5 August 2013
Chkout's minDate and maxDate = 4 August 2013 and 10 August 2013
案例2说明:
Chkout
仍然相同,因为旧Chkout的值在新Chkout的minDate和maxDate范围内


希望这能有所帮助。

在什么情况下取消日期计算不正确?与第三方日期采集器相比,您是否验证了代码中存在错误?一些快速的想法——总是将新日期初始化为午夜(例如,新日期(年、月、日期,0、0、0),以避免夏令时的怪异。还有,今年真的是两位数吗?如果只向日期构造函数传递1或2位数的年份,则它假定世纪为19(例如,新日期(7,…)=1907)。