JQuery UI Datepicker newDate减去2个月

时间:2012-02-10 00:02:44

标签: 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);
});

它有可能在2个月之前出现吗?

非常感谢任何帮助。

2 个答案:

答案 0 :(得分: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);
});

以下是演示:http://jsbin.com/ezuxen/edit#javascript,html,live

以下简要介绍了我对您的代码所做的一些更改:

  1. 我将$传递给了document.ready事件处理程序,因此可以在事件处理程序中使用它。
  2. 这个日期现在定于两个月前,并附有一些条件陈述,检查两个月前是否是另一年。
  3. 我链接了对$('#datepicker') jQuery对象的调用,因此不必多次选择它。
  4. 我也用逗号分隔你的变量声明,而不是重复使用var语句背靠背回......
  5. 请注意,如果当前日期是第31个月,而且两个月之前没有31天,则可能会为此代码带来问题。 8月是31天和2个月之前没有的唯一月份(6月有30天)。

答案 1 :(得分:4)

试试这个:

var d = new Date();
d.setMonth(d.getMonth() - 2);
$("#datepickerselector").datepicker('setDate',d);

希望这有帮助。