我希望在div中显示日期加1个月,用于显示下一个发票日期。我在各个地方看过几个例子,但是无法实现。我也看到有很多解决方案,并且每个解决方案都存在一些争议。
答案 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());
答案 2 :(得分:0)
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)是上个月的最后一天。