如何在 moment.js 中正确地将 1 个月从现在添加到当前日期
How to properly add 1 month from now to current date in moment.js
我阅读了 moment.js 的文档,如果您想从当前日期时间开始增加 1 个月,请使用此代码
var moment = require('moment');
var futureMonth = moment().add(1, 'M').format('DD-MM-YYYY');
但是现在的问题是,没有正确添加日期,例如
假设当前日期是 2015 年 10 月 31 日,在代码中解释
var currentDate = moment().format('DD-MM-YYYY');
var futureMonth = moment().add(1, 'M').format('DD-MM-YYYY');
console.log(currentDate) // Will result --> 31/10/2015
console.log(futureMonth) // Will result --> 30/11/2015
如果你看一下当前的日历时间,从 31/10/2015
开始的 1 个月应该是 1/12/2015
任何人都可以就如何解决这个问题给我一些意见。
谢谢
var currentDate = moment('2015-10-30');
var futureMonth = moment(currentDate).add(1, 'M');
var futureMonthEnd = moment(futureMonth).endOf('month');
if(currentDate.date() != futureMonth.date() && futureMonth.isSame(futureMonthEnd.format('YYYY-MM-DD'))) {
futureMonth = futureMonth.add(1, 'd');
}
console.log(currentDate);
console.log(futureMonth);
编辑
moment.addRealMonth = function addRealMonth(d) {
var fm = moment(d).add(1, 'M');
var fmEnd = moment(fm).endOf('month');
return d.date() != fm.date() && fm.isSame(fmEnd.format('YYYY-MM-DD')) ? fm.add(1, 'd') : fm;
}
var nextMonth = moment.addRealMonth(moment());
According to the latest doc you can do the following-
加一天
moment().add(1, 'days').calendar();
添加年份
moment().add(1, 'years').calendar();
添加月份
moment().add(1, 'months').calendar();
你可以试试
moment().add(1, 'M').subtract(1, 'day').format('DD-MM-YYYY')
startDate = "20.03.2020";
var newDate = moment(startDate, "DD-MM-YYYY").add(5, 'days');
console.log(newDate)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
我阅读了 moment.js 的文档,如果您想从当前日期时间开始增加 1 个月,请使用此代码
var moment = require('moment');
var futureMonth = moment().add(1, 'M').format('DD-MM-YYYY');
但是现在的问题是,没有正确添加日期,例如 假设当前日期是 2015 年 10 月 31 日,在代码中解释
var currentDate = moment().format('DD-MM-YYYY');
var futureMonth = moment().add(1, 'M').format('DD-MM-YYYY');
console.log(currentDate) // Will result --> 31/10/2015
console.log(futureMonth) // Will result --> 30/11/2015
如果你看一下当前的日历时间,从 31/10/2015
开始的 1 个月应该是 1/12/2015
任何人都可以就如何解决这个问题给我一些意见。
谢谢
var currentDate = moment('2015-10-30');
var futureMonth = moment(currentDate).add(1, 'M');
var futureMonthEnd = moment(futureMonth).endOf('month');
if(currentDate.date() != futureMonth.date() && futureMonth.isSame(futureMonthEnd.format('YYYY-MM-DD'))) {
futureMonth = futureMonth.add(1, 'd');
}
console.log(currentDate);
console.log(futureMonth);
编辑
moment.addRealMonth = function addRealMonth(d) {
var fm = moment(d).add(1, 'M');
var fmEnd = moment(fm).endOf('month');
return d.date() != fm.date() && fm.isSame(fmEnd.format('YYYY-MM-DD')) ? fm.add(1, 'd') : fm;
}
var nextMonth = moment.addRealMonth(moment());
According to the latest doc you can do the following-
加一天
moment().add(1, 'days').calendar();
添加年份
moment().add(1, 'years').calendar();
添加月份
moment().add(1, 'months').calendar();
你可以试试
moment().add(1, 'M').subtract(1, 'day').format('DD-MM-YYYY')
startDate = "20.03.2020";
var newDate = moment(startDate, "DD-MM-YYYY").add(5, 'days');
console.log(newDate)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>