jQuery Datepicker添加天数

时间:2015-11-30 09:47:52

标签: jquery jquery-ui date datepicker

修改:工作小提琴:http://jsfiddle.net/yao6dgex/

编辑2:我想我知道发生了什么,但没有理由,它会在实际的日子里添加日期,而不是在所选日期添加天数。

我发现this回答了我的问题,但它根本没有解决任何问题。

问题是,当我添加X天时,在同一个日历或另一个日历中,它将在X天的下个月。

我的代码如下:

$(document).ready(function() {
    $("#cal3").datepicker({
        showOtherMonths: true,
        selectOtherMonths: true,
        dateFormat: "dd/mm/y",
        onSelect: function(selectedDate) {
            $("#cal4").datepicker("setDate", selectedDate);
            $("#cal4").datepicker("setDate", "+3d");
            $("#cal4").datepicker( "option", "minDate", selectedDate );
        }
    });
    $("#cal4").datepicker({
        showOtherMonths: true,
        selectOtherMonths: true,
        dateFormat: "dd/mm/y",
        onSelect: function(selectedDate) {
            $("#cal3").datepicker( "option", "maxDate", selectedDate );
        }
    });
});

在此示例中,我将所选日期添加到cal4,然后再添加3天。

Datepicker setDate API说:

  

设置日期选择器的日期。新日期可以是Date对象或当前日期格式的字符串(例如,“01/26/2009”),从今天开始的天数(例如,+ 7)或一串值和句点(“y” “多年来,”m“持续数月,”w“持续数周,”d“持续数天,例如”+ 1m + 7d“),或空以清除所选日期。

我正在尝试使用"+Xd"添加X天,那么,为什么它不起作用?

1 个答案:

答案 0 :(得分:2)

我建议一个简单的解决方法。 我们可以使用datepicker javascript对象来执行此操作,而不是让Date()来管理添加天数操作。

这样的事情:

$(document).ready(function() {
    $("#cal3").datepicker({
        showOtherMonths: true,
        selectOtherMonths: true,
        dateFormat: "dd/mm/y",
        onSelect: function(selectedDate) {
            //$("#cal4").datepicker("setDate", selectedDate);
            var date = $(this).datepicker("getDate"); //Get the Date object with actual date
            date.setDate(date.getDate() + 3); //Set date object adding 3 days.
            $("#cal4").datepicker("setDate", date); //Set the date of the datepicker with our date object
            $("#cal4").datepicker( "option", "minDate", selectedDate );
        }
    });
    $("#cal4").datepicker({
        showOtherMonths: true,
        selectOtherMonths: true,
        dateFormat: "dd/mm/y",
        onSelect: function(selectedDate) {
            $("#cal3").datepicker( "option", "maxDate", selectedDate );
        }
    });
});

我将jsFiddle与答案代码分开。