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

How can I subtract 1 month using moment.js?

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

减去 1

var startOfMonth = moment().clone().startOf('month').format('DD/MM/YYYY');

leftArrow.on('click', function(){
    var start = moment(startOfMonth).subtract(1, 'months').format("DD/MM/YYYY");
});

How can I subtract one month using moment.js?

tl,dr;

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

初始答案:

这是一个基本示例。

它将日期存储为一个 moment 对象,然后您可以通过添加或减去一个月来修改它,而无需关心它的当前值是多少。您还可以将其存储为 JavaScript 日期对象,这在您必须将其与外部实体(数据库、浏览器等)通信时很有用。

带走积分:

  • 日期未存储为文本
  • 迄今为止的模组很少
  • 日期仅在一处被解析为文本:更新前 DOM(在 setDate 函数中)

// set initial date
let storedDate = moment.now();

// update DOM
setDate(storedDate);

function setDate(date) {
  document.getElementById('text').innerText = moment(date).format('MMMM YYYY');
}

function addMonths(months) {
  // change stored date
  storedDate = moment(storedDate).add(months, 'months');

  // update DOM
  setDate(storedDate);
}
#text {
  min-width: 120px;
  text-align: center;
  display: inline-block
}
button {
  cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>

<div>
  <button onclick="addMonths(-1)">&lt;</button>
  <span id="text"></span>
  <button onclick="addMonths(1)">&gt;</button>
</div>