moment使用moment.add和moment.subtract 计算时间改变自身值
1、add
let value=moment('2021-03-12');
let addDate=value.add(4,'days')
console.log(value.format('YYYY-MM-DD')) // 2021-03-16
console.log(addDate.format('YYYY-MM-DD')) //2021-03-16
初始值value也被改变了
2、subtract
let value=moment('2021-03-16');
let subtractDate=value.subtract(3,'days')
console.log(value.format('YYYY-MM-DD')) // 2021-03-13
console.log(subtractDate.format('YYYY-MM-DD')) //2021-03-13
# 解决
1 、把value用moment()函数再包装一次对象=>moment(value)
let value=moment('2021-03-16');
let subtractDate=moment(value).subtract(3,'days')
let addDate=moment(value).add(3,'days')
console.log(value.format('YYYY-MM-DD')) // 2021-03-16
console.log(subtractDate.format('YYYY-MM-DD')) //2021-03-13
console.log(addDate.format('YYYY-MM-DD')) //2021-03-19
2、clone()方法复制一个对象=>value.clone()
let value=moment('2021-03-16');
let subtractDate=value.clone().subtract(3,'days')
let addDate=value.clone().add(3,'days')
console.log(value.format('YYYY-MM-DD')) // 2021-03-16
console.log(subtractDate.format('YYYY-MM-DD')) //2021-03-13
console.log(addDate.format('YYYY-MM-DD')) //2021-03-19