Tengo un problema con la función .isAfter(), cuando se trata de comparar "04/05/2022" con "05/03/2022" me dice que 04/05/2022> 05/03/2022 especifiqué que quiero comparar la fecha completa agregando 'día' en el argumento pero nada cambia. ¿Alguien puede ayudarme, por favor? Aquí está mi código:
let date1 = moment("03-05-2022", "DD-MM-YYYY").format("DD-MM-YYYY"); data.forEach(d => { let test = date1; let date = moment(d.received_on).format("DD-MM-YYYY"); const { adc_v, } = d; let dateIsAfter = moment(date).isAfter(moment(date1), 'day'); let dateIsSame = moment(date).isSame(moment(date1), 'day'); // const dateIsAfter = moment(date) > moment(date1); // const dateIsSame = moment(date) == moment(date1); if (dateIsSame === true) { this.arrTension.push({ date, value: adc_v, }); console.log(date + ' : ' + adc_v); date1 = moment(date1, "DD-MM-YYYY").add(1, 'days').format('DD-MM-YYYY'); } if (dateIsAfter === true) { console.log('date = ' + date); console.log('date1 = ' + date1); date1 = moment(date1, "DD-MM-YYYY").add(1, 'days').format('DD-MM-YYYY'); } });Esto sucede porque no ha especificado su configuración regional.
Cuando se compara 05/04/2022>03/05/2022 , esencialmente está comprobando que el 4 de mayo de 2022 es mayor que el 5 de marzo de 2022.
Especifique la configuración regional global de la siguiente manera:
moment.locale('fr')
Luego compara las fechas como estabas antes:
moment(date).isAfter(moment(date1), 'day');
Cambié el formato y ahora funciona bien =)
enter code herelet date1 = moment("05-03-2021", "MM-DD-YYYY").format("MM-DD-YYYY"); console.log(date1); data.forEach(d => { let test = date1; let date = moment(d.received_on).format("MM-DD-YYYY"); const { adc_v, } = d; let dateIsAfter = moment(date).locale('fr').isAfter(moment(date1), 'day'); let dateIsSame = moment(date).locale('fr').isSame(moment(date1), 'day'); // const dateIsAfter = moment(date) > moment(date1); // const dateIsSame = moment(date) == moment(date1); if (dateIsSame === true ){ this.arrTension.push({ date, value: adc_v, }); console.log(date + ' : ' + adc_v); date1 = moment(date1, "MM-DD-YYYY").locale('fr').add(1, 'days').format('MM-DD-YYYY'); } if (dateIsAfter === true ){ console.log('date = ' + date); console.log('date1 = ' + date1); date1 = moment(date1, "MM-DD-YYYY").locale('fr').add(1, 'days').format('MM-DD-YYYY'); } });