Дата моего времени из моего API равна 2018-09-01T00:00:00.000Z
. Это frame.scandate
.
У меня есть другая дата, которая генерируется в моей программе как 2018-09
. Это просто scandate
. Это может быть любой год / месяц, я просто привожу примеры.
Мой код выглядит как
this.allStations.forEach(station => {
station.frames.forEach(frame => {
if(moment(frame.scandate).isSame(moment(scandate), 'month')){
total+=frame.framesTotal;
}
})
Это будет соответствовать предыдущему frame.scandate
с текущим scandate
.
Это:
scandate = '2018-09';\
frame.scandate = '2018-09-01T00:00:00.000Z';
console.log(moment(scandate).format('YYYY-MM'));
console.log(moment(frame.scandate).format('YYYY-MM'));
выведет это:
2018-09
2018-08
Я исправил проблему следующим образом:
this.allStations.forEach(station => {
station.frames.forEach(frame => {
if(moment(frame.scandate).add(1, 'minute').isSame(moment(scandate), 'month')){
total+=frame.framesTotal;
}
})
.add(1, 'minute')
является ключевым изменением здесь.
Это потому, что значение frame.scandate
имеет значение времени 00:00:00Z
? Любое объяснение будет с благодарностью.