我正在try 获取订阅模式的下一个"续订日期"(月份和年份).这就是我的设置:
var getPeriod = 'month';
// var getPeriod = 'year';
var getEffective = '2022-06-02';
var getDate = moment('2022-08-01');
if(getPeriod == 'month'){
var getDuration = moment.duration(getDate.diff(getEffective)).months();
} else if('year'){
var getDuration = moment.duration(getDate.diff(getEffective)).years();
}
if(getDuration >= 0){
var getCounter = getDuration+1;
} else {
var getCounter = 1;
}
var getRenewalNext = moment(getEffective).add(getCounter, getPeriod+'s').format('YYYY-MM-DD');
console.log('getDuration:');
console.log(getDuration);
console.log('getRenewalNext:');
console.log(getRenewalNext);
try 1:正确
var getEffective = '2022-06-01';
var getDate = moment('2022-08-01');
"getDuration:"
2
"getRenewalNext:"
"2022-09-01"
try 2:正确
var getEffective = '2022-06-03';
var getDate = moment('2022-08-01');
"getDuration:"
1
"getRenewalNext:"
"2022-08-03"
try 3:不正确
var getEffective = '2022-06-02';
var getDate = moment('2022-08-01');
"getDuration:"
2
"getRenewalNext:"
"2022-09-02"
对于最后一次try ,我得到了"2022-09-02"作为下一个续订数据,但我本以为还有1天,"下一个续订日期"是"2022-08-02".为什么是这样,还是我错过了什么?我怎么才能解决这个问题?
那是我的小提琴:https://jsfiddle.net/ja1k6owb/