У меня есть диаграмма, которая извлекает данные из JSON API. Я хочу отображать дату только с начала месяца до текущей даты.
Начальная дата - первый день этого месяца, а конечная дата - текущая дата
Я попробовал следующее, но он возвращается неопределенным. Я прошу помощи с этим кодом.
Спасибо.
Ниже мой код.
let dates = [];
let confirmed = [];
let recovered = [];
let deaths = [];
var today = new Date();
var TodayDate = today.getFullYear()+'-'+(today.getMonth()+1)+'-'+today.getDate();
var startDate = '01-04-2020'; //YYYY-MM-DD
var endDate = TodayDate; //YYYY-MM-DD
var getDateArray = function(start, end) {
var arr = new Array();
var dt = new Date(start);
while (dt <= end) {
arr.push(new Date(dt));
dt.setDate(dt.getDate() + 1);
}
return arr;
}
var dateArr = getDateArray(startDate, endDate);
fetch("https://pomber.github.io/covid19/timeseries.json")
.then(response => response.json())
.then(data=> {
data["South Africa"].forEach(o => {
dates.filter(function() {
o.date==dateArr;
}).push(o.date);
confirmed.push(o.confirmed);
recovered.push(o.recovered);
deaths.push(o.deaths);
})
new Chart(document.getElementById('myChart'), {
type: 'line',
data: {
labels: dates,
datasets: [{
label: 'Confirmed',
borderColor: 'orange',
backgroundColor: 'orange',
fill: 'false',
data: confirmed
},
{
label: 'Recovered',
borderColor: 'green',
backgroundColor: 'green',
fill: 'false',
data: recovered
},
{
label: 'Deaths',
borderColor: 'red',
backgroundColor: 'red',
fill: 'false',
data: deaths
}
]
},
options: {
responsive: true,
maintainAspectRatio: false,
title: {
display: true,
text: 'COVID-19 / Eswatini Time Series'
}
}
});
});
</script>