通过输入字段中的天数更新Datepicker日期?

时间:2013-02-11 17:44:40

标签: javascript jquery twitter-bootstrap datepicker

我希望根据输入到输入字段id="datepicker_end"中的天数来更改日期选择器id="totaldays"的日期。

输入字段id="totaldays"有2个函数

1)它计算2个日期选择器之间的天数(现在可以使用,参见JSFiddle http://jsfiddle.net/Deif/KLpq7/211/) - 我想保留此功能。

2)如果用户决定直接在输入字段中输入天数,那么我希望第二个日期选择器id="datepicker_end"根据输入字段的天数进行更新。

这里的概念是用户可以输入他们想要的天数或在两个日期之间选择......

我的JSFiddle如下http://jsfiddle.net/Deif/KLpq7/211/

我找不到任何好的例子,所以希望我在上面解释它。

1 个答案:

答案 0 :(得分:1)

你是说这样的意思吗?

function days() {
            var a = new Date($("#datepicker_start").val()),
                b = new Date($("#datepicker_end").val()),
                c = 24*60*60*1000,
                diffDays = Math.round(Math.abs((a - b)/(c)));
            $("#totaldays").val(diffDays);
}

function formatDate(_d){
     var d = new Date(_d);
    var curr_date = d.getDate();
    if(curr_date < 10)
        curr_date = "0" + curr_date;

    var curr_month = d.getMonth() + 1; //Months are zero based
    if(curr_month < 10)
        curr_month = "0" + curr_month;

    var curr_year = d.getFullYear();   
    return curr_month + '/' + curr_date + '/' + curr_year;
}

$('#totaldays').change(function(){        
    if($(this).val() != ''){
        var days = $(this).val();
        var start= new Date($("#datepicker_start").val());
        var newStart = start.setDate(start.getDate() + parseInt(days));    
        $("#datepicker_end").val(formatDate(newStart));
    }else{
        $("#datepicker_end").val($("#datepicker_start").val());
    }

});

$('.datepicker')
    .datepicker({format: 'mm/dd/yyyy'})
    .on('changeDate', function(ev){
        days();
        $(this).datepicker('hide').blur();
});

样本:

http://jsfiddle.net/dirtyd77/KLpq7/218/