使用jQuery查找下一个和前几个月

时间:2013-08-30 10:47:59

标签: jquery date monthcalendar

我的jQuery函数接收current month。我想根据点击的按钮显示下个月和前几个月。

我的问题是,是否有default Date()函数可以调用以了解当月的下个月和前几个月?

$(document).ready(function () {
    var current_date = $('#cal-current-month').html();
    //current_date will have September 2013
    $('#previous-month').onclick(function(){
        // Do something to get the previous month
    });
    $('#next-month').onclick(function(){
        // Do something to get the previous month
    });
});

我可以编写一些代码并获取下一个和前几个月,但我想知道是否已经为此目的defined functions了吗?

解决

var current_date = $('.now').html();
var now = new Date(current_date);

var months = new Array( "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");

$('#previous-month').click(function(){
    var past = now.setMonth(now.getMonth() -1);
    $('.now').html(months[now.getMonth()]+' '+now.getFullYear());
});

$('#next-month').click(function(){
    var future = now.setMonth(now.getMonth() +1);
    $('.now').html(months[now.getMonth()]+' '+now.getFullYear());
});

1 个答案:

答案 0 :(得分:8)

如果您只是希望获得下个月的第一天,您可以执行以下操作:

var now = new Date();
var future = now.setMonth(now.getMonth() + 1, 1);
var past = now.setMonth(now.getMonth() - 1, 1);

这样可以防止“下个月”跳过一个月(例如,如果省略第二个参数,则在2014年1月31日添加一个月将导致2014年3月3日。)

另外,使用date.js *您可以执行以下操作:

var today = Date.today();
var past = Date.today().add(-1).months();
var future = Date.today().add(1).months();

在这个例子中,我使用今天的日期,但它适用于任何日期。

* date.js已被放弃。如果你决定使用一个库,你应该像RGraham建议的那样使用moment.js。