我想从上个月的1月15日到本月的2月14日运行查询。我想以这样的方式运行逻辑,即下个月也要这样,例如2月15日至3月14日。我当然不知道如何使用moment.js来解决这个问题
就像我想获取每个月的最后几个月的15号日期和当前月份的14号一样。就像一个周期,从上个月的15号开始,到本月的14号结束答案 0 :(得分:1)
给出一个名为date
的矩实例,以下方法将计算上个月的15日到当前月份的14日(其中“当前”日期为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>
答案 1 :(得分:0)
这个问题将以这种方式解决,我在@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)