Как с помощью JS по числу получить первый месяц квартала?

Как получить дату первого месяца квартала?
Данные передаются через URL /period/data/2022Q4/44397 , где 2022Q4 год и номер квартала.

Например:

  • 1 - это (Sat Jan 01 2022 00:00:00 GMT+0300)
  • 2 - это (Sat Apr 01 2022 00:00:00 GMT+0300)
  • 3 - это (Sat Jul 01 2022 00:00:00 GMT+0300)
  • 4 - это (Sat Oct 01 2022 00:00:00 GMT+0300)

Ответы (1 шт):

Автор решения: SwaD

Можно сформировать нужную дату. Сделаем справочник кварталов. Так же добавлено смещение по времени часового пояса:

const quartal = {
  1: 1,
  2: 4,
  3: 7,
  4: 10
}
let [q1, q2, q3, q4] = [1, 2, 3, 4];

const timeZone = new Date().getTimezoneOffset() * -1;

const date1 = new Date(2022, quartal[q1] - 1, 1, 0, timeZone, 0, 0);
const date2 = new Date(2022, quartal[q2] - 1, 1, 0, timeZone, 0, 0);
const date3 = new Date(2022, quartal[q3] - 1, 1, 0, timeZone, 0, 0);
const date4 = new Date(2022, quartal[q4] - 1, 1, 0, timeZone, 0, 0);

console.log(date1);
console.log(date2);
console.log(date3);
console.log(date4);

Исходя из комментария, как вы передаете входящие данные, можно сделать вот так:

const incomeData = '2022Q4'
const timeZone = new Date().getTimezoneOffset() * -1;
const dataIncome = incomeData.split('Q').map(Number);
const data = new Date(dataIncome[0], (dataIncome[1] - 1) * 3, 1, 0, timeZone, 0, 0);

console.log(data)

→ Ссылка