JQuery UI Datepicker newDate减去2个月

Pal*_*lle 3 jquery jquery-ui jquery-ui-datepicker

我一直在寻找,但似乎无法找到解决这个问题的方法.

我需要将datepickers输入值设置为今天的日期减去2个月.

我使用以下代码默认在输入字段中显示今天的日期...

jQuery(function () {
jQuery("#datepicker").datepicker({
    dateFormat: 'dd-mm-yy'
});
var day = new Date();
var month = day.getMonth() + 1;
var date = day.getDate() + '-' + month + '-' + day.getFullYear();
jQuery("#datepicker").val(date);
});
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在2个月之前显示?

任何帮助将非常感激.

Jas*_*per 5

设置defaultDate选项:http://jqueryui.com/demos/datepicker/#option-defaultDate

jQuery(function ($) {
    var day         = new Date(),
        year        = ((day.getMonth() - 2) < 0) ? (day.getFullYear() - 1) : day.getFullYear(),
        month       = ((day.getMonth() - 2) < 0) ? (12 + (day.getMonth() - 2)) : (day.getMonth() + 1),
        date        = day.getDate() + '-' + month + '-' + year;
    $('#datepicker').datepicker({
        dateFormat  : 'dd-mm-yy',
        defaultDate : '-2m'
    }).val(date);
});
Run Code Online (Sandbox Code Playgroud)

这是一个演示:http://jsbin.com/ezuxen/edit#javascript,html,live

以下是我对代码所做的一些更改的快速简要说明:

  1. 我传入$document.ready事件处理程序,因此可以在事件处理程序中使用它.
  2. 这个日期现在定在两个月前,有一些条件陈述可以检查两个月前是否是另一年.
  3. 我链接了对$('#datepicker')jQuery对象的调用,因此不必多次选择它.
  4. 我也用逗号分隔你的变量声明,而不是重复使用var语句背靠背到后面......

请注意,如果当前日期是第31个月,而且两个月之前没有31天,则可能会为此代码带来问题.8月是31天和2个月之前没有的唯一月份(6月有30天).