我可以每个月使用 moment.js 获得每月周期吗?

Can I get the monthly cycle using moment.js for every months?

我想运行查询上个月的 1 月 15 日和本月的 2 月 14 日。我想 运行 以这种方式遵循下个月的逻辑,比如从 2​​ 月 15 日到 3 月 14 日。我当然不知道如何使用 moment.js

来解决这个问题

就像我想获得每个月的最后一个月的 15 日和当前月份的 14 日。想像一个循环,循环从前几个月的 15 号开始,到本月的 14 号结束

给定一个名为 date 的时刻实例,以下方法计算上个月的 15 号到当前月份的 14 号(其中 "current" 日期是 date 参数):

function getRange(date){
  var start = date.clone().startOf("month").add(-1,'months').add(14,'days');
  var end = date.clone().startOf("month").add(13,"days");
  return [start,end];
}

可以在下面的演示中看到一个带有 2 个测试用例的实例。

var testArr = [
   moment(),
   moment({y:2019,M:11,d:31}) // 31 december 2019. (Yes months are zero based!)
];

for(var i=0;i<testArr.length;i++){
    var [start,end] = getRange(testArr[i]);
    console.log(start,' --> ',end);
}


function getRange(date){
  var start = date.clone().startOf("month").add(-1,'months').add(14,'days');
  var end = date.clone().startOf("month").add(13,"days");
  return [start,end];
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>

这个问题将通过这种方式解决 我在@Jamiec 中添加了简单性

const date = moment();
const start = date.clone().startOf("month").add(-1,'months').add(14,'days');
const end = date.clone().startOf("month").add(13,"days");
console.log(start,end)