Сохранять первый и последний день каждого месяца в году javascript - PullRequest
1 голос
/ 07 мая 2020

Мне нужно получить первый и последний день каждого месяца в году и установить его как массив объектов. Я попробовал следующее, но застрял и не смог получить правильные результаты.

module.exports = function () {
    let months_names = ["january","february","march","april","may","june", "july","august","september","october","november","december",
  ];

  let current = new Date();
  let month = months_names.map(x => {
      return months_names.indexOf(x);
  });

  const test = {
    prev_month_first: new Date(current.getFullYear(), month[0], 1) / 1000 | 0,
    prev_month_last: new Date(current.getFullYear(), month[0], 0) / 1000 | 0   
  }

  console.log(test);


  const months = [
    {
      jan_start: "",
      jan_end: "",
    },
    {
      feb_start: "",
      feb_end: "",
    },
    {
      march_start: "",
      march_end: "",
    },
    {
      april_start: "",
      april_end: "",
    },
    {
      may_start: "",
      may_end: "",
    },
    {
      june_start: "",
      june_end: "",
    },
    {
      july_start: "",
      july_end: "",
    },
    {
      aug_start: "",
      aug_end: "",
    },
    {
      sept_start: "",
      sept_end: "",
    },
    {
      oct_start: "",
      oct_end: "",
    },
    {
      nov_start: "",
      nov_end: "",
    },
    {
      dec_start: "",
      dec_end: "",
    },
  ];

  return months;
};

console.log(test) печатает временные метки как { prev_month_first: 1577817000, prev_month_last: 1577730600 }, что эквивалентно:

GMT: Tuesday, December 31, 2019 6:30:00 PM
Your time zone: Wednesday, January 1, 2020 12:00:00 AM GMT+05:30

и

GMT: Monday, December 30, 2019 6:30:00 PM
 Your time zone: Tuesday, December 31, 2019 12:00:00 AM GMT+05:30

соответственно (с использованием преобразователя времени эпохи).

Я не могу правильно установить метки времени в соответствии с этим годом для каждого месяца.

Пожалуйста, помогите мне разобраться с этим.

1 Ответ

2 голосов
/ 07 мая 2020

Если я правильно понял ваш вопрос, вы можете сделать что-то вроде этого:

const monthNames = ["january", "february", "march", "april", "may", "june", 
"july", "august", "september", "october", "november", "december"];


const months = monthNames.map((name, i) => ({
  [`${name}_start`]: new Date(new Date().getFullYear(), i, 1),
  [`${name}_end`]: new Date(new Date().getFullYear(), i + 1, 0)
}))

console.log(months);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...