用PHP和AJAX计算datepicker的日期

用PHP和AJAX计算datepicker的日期,php,mysql,ajax,date,datepicker,Php,Mysql,Ajax,Date,Datepicker,我有三个输入: <input type='number'> <input class='datepicker'> <input class='datepicker' readonly='readonly'> 日期选择器很简单,如下所示: <script> $(function() { $('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' }); }); &l

我有三个输入:

<input type='number'>
<input class='datepicker'>
<input class='datepicker' readonly='readonly'>

日期选择器很简单,如下所示:

<script>
  $(function() 
    {
     $('.datepicker').datepicker({ dateFormat: 'yy-mm-dd' });
    }); 
</script>

$(函数()
{
$('.datepicker').datepicker({dateFormat:'yy-mm-dd'});
}); 
第一个用于设置周数,例如2。第二个是设置开始日期。我怎样才能在第三个输入(只读)中将输出已设置日期的结果日期加上周数

比如当我设置2周,然后使用第一个日期选择器设置2012-12-07,那么它将输出到第三个(只读)输入2012-12-21


谢谢你的建议

您需要使用日期选择器的属性
onSelect()
来检索所选日期并更新只读字段:

然后,您需要使用对象及其方法解析所选日期,为其添加特定天数,并返回与新日期对应的新文本

<input id="nbweeks" type='number' />
<input class='datepicker' />
<input id="input-ro" class='datepicker' readonly='readonly' />

function addDaysDate(dateText, days) {
    var curDate = new Date(Date.parse(dateText));
    var nextDate = new Date();
    nextDate .setDate(curDate.getDate() + days);

    var curDay = nextDate .getDate();
    var curMonth = nextDate .getMonth() + 1; //Months are zero based
    var curYear = nextDate .getFullYear();
    return curMonth + "-" + curDay + "-" + curYear;​
}

$(function(){
    $('.datepicker').datepicker({
        dateFormat: 'yyyy-mm-dd',
        onSelect(dateText, inst) {
            var days = $("#nbweeks").val() * 7;
            var newDate = addDaysDate(dateText, days)
            $("#input-ro").val(newDate)​;​
        }
    });
});

函数addDaysDate(日期文本,天){
var curDate=新日期(Date.parse(dateText));
var nextDate=新日期();
nextDate.setDate(curDate.getDate()+天);
var curDay=nextDate.getDate();
var curMonth=nextDate.getMonth()+1;//月份以零为基础
var curYear=nextDate.getFullYear();
返回curMonth+“-”+curDay+“-”+curYear;​
}
$(函数(){
$('.datepicker').datepicker({
日期格式:“yyyy-mm-dd”,
onSelect(日期文本,inst){
var天数=$(“#nbweeks”).val()*7;
var newDate=addDaysDate(日期文本,天)
$(“#输入ro”).val(新日期)​;​
}
});
});
代码的实时示例(不带日期选择器):


编辑:小心,对于Date.parse()要工作,我认为您需要将年份设置为四位数字,或者将日期的顺序更改为mm/dd/yy,可能

知道我为什么有NaN吗?:)尝试将mm/dd/yy与yy/mm/dd等混合使用,但没有结果:)Hmmm看起来带“-”的格式不受
Date.parse()支持。
try mm/dd/yyyyy或yyyyy-mm ddIt工作:)我的错,我用了val*7而不是val()*7;)谢谢。可惜它返回的日期没有0,比如2013-1-6