今天才发现,有个奇怪的问题
我使用getDateDiff函数返回的月份数据不对劲
2021-01-01 到 2021-09-30 相差的是九个月份
起始时间改成2021-01-05。相差月份却变成了8个月。
看了下源码,计算应该是拿的结束的总时间减去开始的总时间(这里总时间是指返回距 1970 年 1 月 1 日之间的毫秒数)。
源码如下:
总之这种差异,不是我想要的结果,我只想要单纯的9月份到1月份就是相差9-1=8
所以最后选择,使用moment获取月份,再两者相减
// 根据差异的年,月数,算出每个月份
const startYear = moment(start).format('YYYY')
const endYear = moment(end).format('YYYY')
const startMonth = moment(start).format('M')
const endMonth = moment(end).format('M')
const diffMonth = (endMonth - startMonth) + (endYear - startYear) * 12
console.log('diff相差', diffMonth)
for (let m = 0; m < diffMonth; m++) {
everyMonth = moment(start).add(m + 1, 'M').format(rules)
monthResult.push(everyMonth)
}