Hacer esto sin bibliotecas.
dates.forEach((date) => { if(date.getDay() == 6) { console.log('sat', date) var t = new Date() console.log('sat new', new Date(t.setDate(date.getDate() + 1))) } else ... }Da esta salida
sat Date Sat Jan 01 2022 00:00:00 GMT+0200 (Eastern European Standard Time) sat new Date Sat Apr 02 2022 19:10:27 GMT+0300 (Eastern European Summer Time)El objetivo de este código es ver si una fecha es un sábado. Si es así, increméntelo para que se convierta en un día de trabajo (sé que dice +1 pero es un wip)
El resultado es que el día se incrementa. Sin embargo, por alguna razón, mueve la fecha para estar en marzo. Miré a mi alrededor y aparentemente así es como se supone que debes hacerlo, pero no lo está haciendo.
Cuando pruebo console.log('sat new', t.setDate(date.getDate() + 1)) (sin new Date()) obtengo una marca de tiempo de 1646236273249. Que este sitio convierte al 16 de marzo. No sé lo útil que es esto.
Espero haber dado toda la información importante aquí.
Para incrementar un día a una fecha dada:
date = new Date(date) date.setDate(date.getDate() + 1) console.log(date)var t = new Date() - no pasar nada al constructor Date lo hará "ahora mismo". Creo que necesitas pasar la fecha iterada al constructor de Date :
dates.forEach((date) => { if(date.getDay() == 6) { console.log('sat', date) var t = new Date(date) // this line console.log('sat new', new Date(t.setDate(date.getDate() + 1))) } }