我可以每个月使用 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)
我想运行查询上个月的 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)