Php 在页面加载时启动日期选择器代码

Php 在页面加载时启动日期选择器代码,php,jquery,datepicker,Php,Jquery,Datepicker,我有两个约会对象。当选择开始日期时,结束日期将在x天后通过php自动分配。这很好,但我有一个问题。执行此任务的jQuery代码,我希望在刷新/加载页面时也启动它(开始日期保存在php会话中)。这是我的代码: $(document).ready(function(){ $("#txtStartDate").datepicker({ onSelect: function(){ var datum = $(this).datepicker('getDate');

我有两个约会对象。当选择开始日期时,结束日期将在x天后通过php自动分配。这很好,但我有一个问题。执行此任务的jQuery代码,我希望在刷新/加载页面时也启动它(开始日期保存在php会话中)。这是我的代码:

$(document).ready(function(){
    $("#txtStartDate").datepicker({
        onSelect: function(){
        var datum = $(this).datepicker('getDate');
        datum.setDate(datum.getDate() + <?php echo $nights; ?>);
        $("#txtEndDate").datepicker("setDate", new Date(datum.getTime()));
        }
    });
    $("#txtEndDate").datepicker();
}); 
$(文档).ready(函数(){
$(“#txtStartDate”).datepicker({
onSelect:function(){
var datum=$(this.datepicker('getDate');
datum.setDate(datum.getDate()+);
$(“#txtEndDate”).datepicker(“setDate”,新日期(datum.getTime());
}
});
$(“#txtEndDate”).datepicker();
}); 
我一直在考虑使用“onSelect,onLoad:funct…”

这是如何实现的

添加
$(“#txtStartDate”).trigger('focus')结束

$("#txtStartDate").datepicker({
    onSelect: function() {
        var datum = $(this).datepicker('getDate'),
            days = 2,
            d = new Date(datum.getTime() + (days * 86400000)),
            month = parseInt(d.getMonth(), 10)+1 < 10 ? '0'+ (parseInt(d.getMonth(), 10)+1) : parseInt(d.getMonth(), 10)+1,
            day = d.getDate() < 10 ? '0'+ d.getDate() : d.getDate(),
            year = d.getFullYear();
        $("#txtEndDate").val(month+'/'+day+'/'+year);
    }
});
$("#txtEndDate").datepicker();
$("#txtStartDate").trigger('focus');
$(“#txtStartDate”).datepicker({
onSelect:function(){
变量数据=$(this).datepicker('getDate'),
天数=2天,
d=新日期(datum.getTime()+(天*86400000)),
month=parseInt(d.getMonth(),10)+1<10?'0'+(parseInt(d.getMonth(),10)+1):parseInt(d.getMonth(),10)+1,
day=d.getDate()<10?'0'+d.getDate():d.getDate(),
year=d.getFullYear();
$(“#txtEndDate”).val(月+'/'+日+'/'+年);
}
});
$(“#txtEndDate”).datepicker();
$(“#txtStartDate”).trigger('focus');

更新。更改变量days以设置提前数天的结束日期。

尝试删除document.ready并将其放置在脚本标记中

<script type="text/javascript">

 $("#txtStartDate").datepicker({
        onSelect: function(){
        var datum = $(this).datepicker('getDate');
        datum.setDate(datum.getDate() + <?php echo $nights; ?>);
        $("#txtEndDate").datepicker("setDate", new Date(datum.getTime()));
        }
    });
    $("#txtEndDate").datepicker();

 </script>

创建一个单独的函数来设置结束日期,然后在onLoad事件中调用它

function setEndDate(){
    var datum = $("#txtStartDate").datepicker('getDate');
    datum.setDate(datum.getDate() + <?php echo $nights; ?>);
    $("#txtEndDate").datepicker("setDate", new Date(datum.getTime()));
}
函数setEndDate(){
var数据=$(“#txtStartDate”).datepicker('getDate');
datum.setDate(datum.getDate()+);
$(“#txtEndDate”).datepicker(“setDate”,新日期(datum.getTime());
}

然后

谢谢您的回答,但这会在页面加载时自动打开#txtStartDate的日历。我想要的是#txtEndDate在页面加载时自动分配其日期(根据onSelect函数中的代码,第一个日期后X天),而不仅仅是在选择第一个日期时。这可以实现吗?很抱歉,我无法让你的代码正常工作。datepicker无法使用此代码。请从获取帮助以设置默认日期不幸的是,我也无法使用此代码,但我非常感谢您的努力!
function setEndDate(){
    var datum = $("#txtStartDate").datepicker('getDate');
    datum.setDate(datum.getDate() + <?php echo $nights; ?>);
    $("#txtEndDate").datepicker("setDate", new Date(datum.getTime()));
}