React native — получает текущий месяц и устанавливает его в график

#javascript #arrays #react-native

#javascript #массивы #react-native

Вопрос:

В настоящее время я работаю над своим проектом на экране, на котором будут представлены доходы / результаты бизнеса. Я пытаюсь представить данные в виде графика, используя зависимость «react-native-chart-kit»

Моя цель — отобразить доходы за текущий месяц (октябрь) и предыдущие 3 месяца до (июль, август, сентябрь) и на 2 месяца вперед (ноябрь, декабрь), но сейчас я застрял в представлении месяцев на графике. Я смог получить текущий месяц и отобразить его, но я не могу определить формулу для отображения предыдущего и будущих месяцев.

Код:

 const d = new Date();
  const v = d.getMonth()   1;
  console.log("V => ", v);

  const data = {
  
    labels: ["Jul","Aug","Sep",v,"Nov","Dec"],
    datasets: [
      {
        data: [1300, 45, 28, 80, 99, 43],
        color: (opacity = 1) => `rgba(134, 65, 244, ${opacity})`, // optional
        strokeWidth: 2, // optional
      },
    ],
    legend: ["Incomes - Quarter displayed"], // optional
  };
  

Как я могу извлечь месяцы в массив labels?

Ответ №1:

Вы можете сделать следующее :

 var month = new Date().getMonth()   1; //To get the Current Month
                
labels: [this.checkMonthName(month-3), this.checkMonthName(month-2), this.checkMonthName(month-1), 
         this.checkMonthName(month), this.checkMonthName(month 1), this.checkMonthName(month 2)]
  

Затем определите эту функцию checkMonthName, чтобы вернуть название месяца из его номера :

   checkMonthName =(month)=>{

    var monthName ;

      if(month == 1)  monthName = "January"
      else if(month == 2) monthName = "February" 
      else if(month == 3) monthName = "March"
      else if(month == 4) monthName = "April"
      else if(month == 5) monthName = "May"
      else if(month == 6) monthName = "June"
      else if(month == 7) monthName = "July"
      else if(month == 8) monthName = "August"
      else if(month == 9) monthName = "September"
      else if(month == 10) monthName = "October"
      else if(month == 11) monthName = "November"
      else if(month == 12) monthName = "December"

      return monthName;
  }
  

— Вы должны обработать, если текущий месяц раньше, потому что month-3 будет отрицательным, и это повлияет на ваш результат

Или
— если текущий месяц является поздним месяцем, например, декабрем, то месяц 1 будет равен 13

Может быть, есть более простые способы, но это то, что я имею в виду прямо сейчас.

Комментарии:

1. На самом деле я застрял в том, что вы описали .. отрицательный или результат 13 .. не могу понять, что делать

2. Если бы текущим месяцем был, например, январь, вы бы отображали доходы за предыдущие месяцы прошлого года?

3. Нет, это должно было быть только для текущего года, это что-то еще, с чем мне нужно будет иметь дело

4. Отлично, проверьте, находится ли текущий месяц в диапазоне от 4 до 10, чтобы все было в порядке. Но если нет, распечатайте сообщение пользователю.

5. я не уверен, как и где это сделать