Я пытаюсь создать функцию, которая будет возвращать диапазоны дат, если я передам номер квартала (1,2,3 или 4) и год для этого квартала.

Вот что я до сих пор:

export const getCurrentQuarterRangeString = (quarter, year) => {
  // let year = moment().year(year);
  let start = moment().quarter(quarter).startOf('quarter').format('YYYY-MM-DD');
  let end = moment().quarter(quarter).endOf('quarter').format('YYYY-MM-DD');
  let dateRangeString = `${start};#${end}`;
  return dateRangeString;
}

Я запутался в попытке выяснить, как отключить этот параметр года для MomentJS.

0
BluePilot 19 Фев 2020 в 19:30

2 ответа

Лучший ответ

Вы можете создать момент, когда вы посвятите год своей работе. Используйте это, чтобы манипулировать и получить нужные вам даты.

const moment = require("moment");

export const getCurrentQuarterRangeString = (quarter, year) => {
  const yearObject = moment(parseInt(year), "YYYY");

  const startOfQuater = yearObject.quarter(quarter).startOf('quarter').format('YYYY-MM-DD');
  const endOfQuarter = yearObject.quarter(quarter).endOf('quarter').format('YYYY-MM-DD');

  return `${start};#${end}`;
}
1
Ryker 19 Фев 2020 в 17:13

Создайте момент с датой нужного года

export const getCurrentQuarterRangeString = (quarter, year) => {
  const d = new Date();
  d.setFullYear(year);
  moment = moment(d);

  let start = moment.quarter(quarter).startOf('quarter').format('YYYY-MM-DD');
  let end = moment.quarter(quarter).endOf('quarter').format('YYYY-MM-DD');
  let dateRangeString = `${start};#${end}`;
  return dateRangeString;
}
0
Horatiu Jeflea 19 Фев 2020 в 16:38