У меня есть этот большой массив ДАННЫЕ:
Ключ: comprar_fecha_oper имеет дату, с которой мне нужно работать.
Отсюда мне нужно знать год и месяц, когда производится деятельность. Для выполнения этой задачи я вычислил первую дату и последний день из массива DATA.
С этим кодом:
const getFirstAndLastDate = (DatosFechas) => {
DatosFechas = DatosFechas.sort()
//Devuelve primera fecha y última fecha
return [DatosFechas[0], DatosFechas[DatosFechas.length - 1]]
}
Результат:
Первая дата: 2018-01-16 Последняя дата: 2020-05-03
Затем мне нужно добавить дополнительную дату и последний день, если активация выполнена, и знать, что это год и месяц.
С этим кодом:
function ListarLosMesesEntreDosFechas(inicio, fin) {
var dateStart = moment(inicio);
var dateEnd = moment(fin);
var interim = dateStart.clone();
var timeValues = [];
while (dateEnd > interim || interim.format('M') === dateEnd.format('M')) {
timeValues.push(interim.format('YYYY-MM'));
interim.add(1,'month');
}
return timeValues
}
Результат:
["2013-08", "2013-09", "2013-10", "2013-11", «2013-12», «2014-01», «2014-02», «2014-03», «2014-04», «2014-05», «2014-06», «2014-07», «2014 -08 "," 2014-09 "," 2014-10 "," 2014-11 "," 2014-12 "," 2015-01 "," 2015-02 "," 2015-03 "]
Теперь я использую массив DATA для поиска каждой даты, если она включена в указанный диапазон:
logo.forEach(function(item){
//console.log(item)
var a = moment(item);
var start = a.format('YYYY-MM-DD')
var b = a.add(30, 'days');
var end = b.format('YYYY-MM-DD')
console.log("procesing search between date : ",start , " and last date: ", end)
letrado.forEach((value, key) => {
//console.log("1-key =>", key, "1-value =>", value.compra_fecha_oper);
let tonto = moment(value.compra_fecha_oper).isBetween(start, end); // true
if (tonto = true){
console.log("Value Date: ",value.compra_fecha_oper ,"Has result: ", tonto)
}
});
});
Цель этого кода - найти действия, которые были произведены в течение заданного периода. месяц и добавьте сумму в течение этого месяца.
Но код не работает правильно,
Любая помощь? спасибо.