добавить текущую дату на график js с моментами - PullRequest
1 голос
/ 25 апреля 2020

Мне нужна помощь, пожалуйста, с этим кодом:

сбросить отсутствующую дату в данных для диаграммы js

моя таблица, например, со значениями:

bonus   date
5   : 18-04-2020
10  : 19-04-2020
0   : 20-04-2020
0   : 21-04-2020
55  : 22-04-2020
44  : 23-04-2020
30  : 24-04-2020

я получаю дату последних 7 дней в базе данных, диаграмма js отображает все даты, но я хочу, чтобы на диаграмме не отображалась 30: 24-04-2020 последняя дата, но я хочу отобразить 0: 25-04-2020, если не существует в базе данных, потому что у пользователя еще нет бонуса сегодня. Я думаю, что нужно добавить 1 день в последнюю дату на графике js? или в запросе к базе?

мой код:

var graphData = [55, 10, 0, 0, 55, 44, 30],

  labels = ["18-04-2020", "19-04-2020", "20-04-2020", "21-04-2020", "22-04-2020", "23-04-2020", "24-04-2020"];



for (var i = 0; i < labels.length; i++) {
  //make sure we are not checking the last date in the labels array
  if (i + 1 < labels.length) {
    var date1 = moment(labels[i], "DD-MM-YYYY");
    var date2 = moment(labels[i + 1], "DD-MM-YYYY");


    //if the current date +1 is not the same as it's next neighbor we have to add in a new one
    if (!date1.add(1, "days").isSame(date2)) {

      //add the label
      labels.splice(i + 1, 0, date1.format("DD-MM-YYYY"));
      //add the data
      graphData.splice(i + 1, 0, 0);
    }
  }


}


var ctx = document.getElementById("chart").getContext("2d");
var data = {
    labels:labels,
    datasets: [{
        label: "My First dataset",
        fillColor: "rgba(220,220,220,0.5)",
        strokeColor: "rgba(220,220,220,0.8)",
        highlightFill: "rgba(220,220,220,0.75)",
        highlightStroke: "rgba(220,220,220,1)",

        data: graphData
    }]
};


var myLineChart = new Chart(ctx).Line(data);
...