Могу ли я получить месячный цикл, используя момент. js за каждый месяц? - PullRequest
1 голос
/ 03 февраля 2020

Я хочу выполнить запрос с 15 января прошлого месяца и с 14 февраля текущего месяца. и я хочу запустить logi c таким образом, чтобы это продолжалось и в последующие месяцы, например, с 15 февраля по 14 марта. Я, конечно, не знаю, как решить эту проблему, используя момент. js

, как будто я хочу получить 15-ую дату последних месяцев и 14-е число текущих месяцев за каждый месяц. Думайте как цикл, где цикл начинается с 15-го числа предыдущих месяцев и заканчивается 14-м * этого месяца

Ответы [ 2 ]

1 голос
/ 03 февраля 2020

С учетом экземпляра момента с именем 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];
}

Живой пример с двумя тестовыми примерами можно увидеть в демоверсии ниже.

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>
0 голосов
/ 04 февраля 2020

эта проблема будет решена таким образом, я добавляю простоту в @ Jam iec

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)
...