Цикл между двумя датами. Дата начала и окончания (Fetch API) - PullRequest
0 голосов
/ 03 октября 2019

Я делаю запросы в банк, чтобы получить курс обмена за интервал, указанный во входных данных. Получается интервал [startdate;enddate] Но чтобы сделать запрос в банк, мне нужно перенести выбранную дату по ссылке в этой форме: 20191003

Я делаю это так:

var sdate=startdate.value.split("-").join("");
var edate=enddate.value.split("-").join("");

И вот я делаю запрос в банк, следующий месяц выпадает между датами. И я вижу следующую ошибку enter image description here Это ошибка из-за цикла, потому что по логике она должна быть такой: 20190932 20190933 ... Но мне нужно перейти на другой месяц, как это: 20191001 20191002

Но я не знаю как, Вот мой сайт, где я делаю это, но он наукраинский язык https://yurakhomitsky.github.io/exchange%20rates/

  var startdate=document.getElementById("cdate");
	var enddate=document.getElementById("bdate");
async function currency(e) {
	
	var sdate=startdate.value.split("-").join("");
	var edate=enddate.value.split("-").join("");

 	for (var i = Number(sdate); i <= Number(edate); i++){
 		console.log(i);
	let url=`https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=${currenc.value}&date=${i}&json`;
let response= await fetch(url);
let data =await response.json();
var itemObj={
	rate:data[0].rate,
	exchangedate:data[0].exchangedate
	};
	chartData.series[0].data.push(Number(itemObj.rate.toFixed(2)));
}

Highcharts.chart('container', chartData);
}

1 Ответ

0 голосов
/ 03 октября 2019

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

async function currency(e) {


	var sdate=startdate.value;
	var edate=enddate.value;
	sdate=Date.parse(sdate);
	edate=Date.parse(edate);
 	for (let i=sdate;i<=edate;i=i+24*60*60*1000){
	let url=`https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?valcode=${currenc.value}&date=${new Date(i).toISOString().substr(0,10).split("-").join("")}&json`;
let response= await fetch(url);
let data =await response.json();
var itemObj={
	rate:data[0].rate,
	exchangedate:data[0].exchangedate
	};
	chartData.series[0].data.push(Number(itemObj.rate.toFixed(2)));
}

Highcharts.chart('container', chartData);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...