【问题标题】:jQuery Datepicker adding daysjQuery Datepicker 添加天数
【发布时间】:2015-11-30 09:47:52
【问题描述】:

编辑:工作小提琴: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 天。

日期选择器setDate API 说:

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

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

【问题讨论】:

  • 你试过只用“+X”
  • @vijayP 是的,它也在做同样的事情
  • 您可以为此创建一个工作小提琴吗?
  • @vijayP 在问题顶部添加了小提琴
  • 我想我知道发生了什么,但没有理由,它获取实际日期并添加天数,而不是在所选日期添加天数

标签: jquery jquery-ui date datepicker


【解决方案1】:

我会建议一个简单的解决方法。 我们可以使用Date() javascript 对象来代替让datepicker 管理添加天数操作。

类似这样的:

$(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 );
        }
    });
});

我用答案代码 fork jsFiddle。

【讨论】:

  • 谢谢。我必须像你一样做一个解决方法才能得到我需要的东西。起初我以为插件会在选定的日期完成工作,但似乎没有。感谢您的宝贵时间!
  • 不客气!很高兴能提供帮助。 datepicker 提供所需的功能看起来很合理,但事实并非如此。如果您经常需要这样做,也许您可​​以尝试在插件上添加一个新方法来执行所需的操作。
猜你喜欢
  • 1970-01-01
  • 2012-02-22
  • 2011-11-17
  • 2017-04-22
  • 2021-01-10
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
  • 2011-07-05
相关资源
最近更新 更多