希望在div中添加1个月到当前日期

时间:2014-07-07 18:55:31

标签: javascript date dynamic

我希望在div中显示日期加1个月,用于显示下一个发票日期。我在各个地方看过几个例子,但是无法实现。我也看到有很多解决方案,并且每个解决方案都存在一些争议。

4 个答案:

答案 0 :(得分:2)

获得日期对象后,只需调用 setMonth(),传入当前月数加1。

var CurrentDate = new Date();
CurrentDate.setMonth(CurrentDate.getMonth() + 1);

答案 1 :(得分:1)

如果您需要下个月的同一日期,可以使用此http://jsfiddle.net/dfA8b/

var invoiceDt = new Date();
invoiceDt.setMonth(invoiceDt.getMonth()+1);
$('#invoiceDate').text(invoiceDt.toDateString());

或者

如果您需要30天的月份(主要用于发票目的),您可以使用此http://jsfiddle.net/hjSDu/

var invoiceDt = new Date();
var days = 30;
invoiceDt.setDate(invoiceDt.getDate()+days);
$('#invoiceDate').text(invoiceDt.toDateString());

出于格式化目的: http://jsfiddle.net/7bU6n/

var invoiceDt = new Date();
invoiceDt.setMonth(invoiceDt.getMonth()+1);
$('#invoiceDate').text((invoiceDt.getMonth()+1) +"-"+ invoiceDt.getDate() +"-" + invoiceDt.getFullYear());

另见:https://stackoverflow.com/a/1643468/3603806

答案 2 :(得分:0)

1个月不太清楚......你的意思是什么? 31,30天或者是否存在下个月的同一天?

第一种情况:(假设31天)

var d = new Date(),
    dplus31 = d.getDate() + 31;
d.setDate(dplus31);
console.debug(d, dplus31);

第二种情况:一个月

var d = new Date(),
    dplus1 = d.getMonth() + 1;
d.setMonth(dplus1);
console.debug(d, dplus1);  

..但即使在这种情况下也存在一些边缘情况(例如1月31日) 希望它有所帮助

答案 3 :(得分:0)

function addMonthsNoOverflow(dateParam, intParam) {
    var sum = new Date(new Date(dateParam.getTime()).setMonth(dateParam.getMonth() + intParam);
    if (sum.getDate() < dateParam.getDate()) {  sum.setDate(0);  }
    return(sum);
}

注意: 它通过消除溢出来处理29,30或31转为1,2或3的情况 日期不是零索引,因此.setDate(0)是上个月的最后一天。