Javascript 如何使用moment.js减去1个月?

Javascript 如何使用moment.js减去1个月?,javascript,jquery,date,momentjs,Javascript,Jquery,Date,Momentjs,我想用(DD/MM/YYYY)格式从给定的日期中减去1个月,但当我使用moment.js执行此操作时,它会将结果显示为2020年12月1日。我如何解决这个问题?基本上,当我点击左箭头时,每月应该减去1 如何使用moment.js减去一个月 tl,dr moment(date).add(-1, 'months'); // or: moment(date).subtract(1, 'months'); 初始答案: 这里有一个基本的例子 它将日期存储为时刻对象,然后通过添加或减去一个月对其进行

我想用(DD/MM/YYYY)格式从给定的日期中减去1个月,但当我使用moment.js执行此操作时,它会将结果显示为2020年12月1日。我如何解决这个问题?基本上,当我点击左箭头时,每月应该减去1

如何使用moment.js减去一个月

tl,dr

moment(date).add(-1, 'months');
// or:  moment(date).subtract(1, 'months');

初始答案:

这里有一个基本的例子

它将日期存储为时刻对象,然后通过添加或减去一个月对其进行修改,而不必关心其当前值。您还可以将其存储为JavaScript日期对象,这在您必须将其与外部实体(db、浏览器等)通信时非常有用

外卖点:

  • 日期不存储为文本
  • 到目前为止,MOD是最小的
  • 只在一个位置将日期解析为文本:在更新DOM之前(在
    setDate
    函数中)
//设置初始日期
让storedDate=moment.now();
//更新DOM
设置日期(存储日期);
函数设置日期(日期){
document.getElementById('text')。innerText=时刻(日期)。格式('MMMM-YYYY');
}
功能添加月份(月){
//更改存储日期
storedDate=时刻(storedDate).add(月,'月');
//更新DOM
设置日期(存储日期);
}
#文本{
最小宽度:120px;
文本对齐:居中;
显示:内联块
}
钮扣{
光标:指针;
}

如何使用moment.js减去一个月

tl,dr

moment(date).add(-1, 'months');
// or:  moment(date).subtract(1, 'months');

初始答案:

这里有一个基本的例子

它将日期存储为时刻对象,然后通过添加或减去一个月对其进行修改,而不必关心其当前值。您还可以将其存储为JavaScript日期对象,这在您必须将其与外部实体(db、浏览器等)通信时非常有用

外卖点:

  • 日期不存储为文本
  • 到目前为止,MOD是最小的
  • 只在一个位置将日期解析为文本:在更新DOM之前(在
    setDate
    函数中)
//设置初始日期
让storedDate=moment.now();
//更新DOM
设置日期(存储日期);
函数设置日期(日期){
document.getElementById('text')。innerText=时刻(日期)。格式('MMMM-YYYY');
}
功能添加月份(月){
//更改存储日期
storedDate=时刻(storedDate).add(月,'月');
//更新DOM
设置日期(存储日期);
}
#文本{
最小宽度:120px;
文本对齐:居中;
显示:内联块
}
钮扣{
光标:指针;
}


var start=moment(startOfMonth)。减去(1,'months')。格式(“MMMM-YYYY”)这不起作用吗?
startOfMonth
已格式化为文本,不再是时间日期。存储
moment().clone().startOf('month')
并仅使用format命令显示值:
var start=moment(startOfMonth)。减去(1,'months').format(“MMMM-YYYY”)这不起作用吗?
startOfMonth
已格式化为文本,不再是时间日期。存储
moment().clone().startOf('month')
并仅使用format命令显示值:示例中不需要moment#startOf,因为没有显示日期。;-)由于未显示日期,因此示例中不需要使用moment#startOf