【问题标题】:jQuery UI datepicker: add 6 months to another datepickerjQuery UI datepicker:将 6 个月添加到另一个 datepicker
【发布时间】:2012-06-23 15:44:09
【问题描述】:

我有两个日期选择器日历,一个用于开始日期,另一个用于结束日期。

我想要动态设置第二个日期选择器的 defaultDate 比第一个日期晚六个月,当第一个日期被选择时。

我知道如何将第一个日期报告给第二个日期选择器,但我不知道如何将第一个日期添加到第一个日期,然后将其添加为第二个日期选择器的默认日期

这是我的代码:

$(".firstcal").datepicker({
    dateFormat: "dd/mm/yy",
    onSelect: function (dateText, inst) {
        var date = $.datepicker.parseDate('dd/mm/yy', dateText);
        var $sec_date = $(".secondcal");
        $sec_date.datepicker("option", "defaultDate", date);
    }
});
$(".secondcal").datepicker({
    dateFormat: "dd/mm/yy"
});

非常感谢您的帮助

编辑:

在 datePicker 中,存在添加六个月到日期的功能:它被标记为“+6M”。我只想将“+6M”添加到第一个日期并将其作为默认日期发送给第二个。

【问题讨论】:

    标签: javascript jquery jquery-ui date jquery-ui-datepicker


    【解决方案1】:
    1. 将选定的日期字符串解析为 JavaScript 日期对象。
    2. 使用Date.getMonth()Date.setMonth() 更改月份。如果需要,后一个函数会自动增加/减少年份。
    3. 使用 jQuery datepicker 的 setDate 方法更改第二个 datepicker 的日期(设置 defaultDate 不会给你想要的结果)。
    onSelect: function(dateText, instance) {
        date = $.datepicker.parseDate(instance.settings.dateFormat, dateText, instance.settings);
        date.setMonth(date.getMonth() + 6);
        $(".secondcal").datepicker("setDate", date);
    }
    

    Demo here

    【讨论】:

      【解决方案2】:

      将日期加 6 个月

       var second_date = new Date(date);
       second_date.setMonth(second_date.getMonth()+6); //+6 is however many months
      

      然后更新值

      $("#secondcal").val(second_date);  //It is probably better to work with ID
      

      【讨论】:

        【解决方案3】:

        这是我用来将第二个对话框的最大日期设置为比第一个晚一个月的代码。所以你只需设置默认日期

           var beginsDate=$('#dlg_begins').datepicker('getDate');
           var monthMillisec=30*24*60*60*1000;
           var maxDate=new Date();
           maxDate.setTime( beginsDate.getTime() + monthMillisec );
        
           $('#dlg_expires').datepicker('option',
           {
               'maxDate':maxDate,
               'minDate':beginsDate
           });
        

        【讨论】:

        • 谢谢马特,它帮助了我,但部分是:因为每个月的天数不同,结果是错误的。如果我添加 15778463000 毫秒(女巫是 182.62 天),则 7 月 1 日设置为 12 月 30 日而不是 1 月 1 日
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-31
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 1970-01-01
        • 2017-09-17
        相关资源
        最近更新 更多