经过加减后,会改变原日期,所以要复制对象才行
奇怪的现象代码
const moment = require('moment')
let start = moment()
console.log(`操作前的start日期: ${start}`)
let end = start.add(1, 'day')
console.log(`操作后的end日期: ${start}`)
console.log((`操作前的end日期: ${end}`))
输出结果
操作前的开始日期: Sat Aug 10 2019 16:14:41 GMT+0800
操作后的开始日期: Sun Aug 11 2019 16:14:41 GMT+0800
操作前的结束日期: Sun Aug 11 2019 16:14:41 GMT+0800
开始日期被操作后改变了自身的值,跟结束日期一样变成了Aug 11 2019
解决方法
方法1.使用moment()函数再包装一次对象
将代码let end = start.add(1, 'day')
改成let end = moment(start).add(1, 'day')
方法2.使用clone()方法复制一个对象
将代码let end = start.add(1, 'day')
改成let end = start.clone().add(1, 'day')
moment.js中文官网:http://momentjs.cn/
[完]