Tengo un dateObject extraído de mi base de datos: 2021-01-02T15:12:05.000Z. Me gustaría agregar 30 días a esa fecha para que la fecha de finalización sea: 2021-02-01T15:12:05.000Z. ¿Cómo haría que esto funcione?

Leyendo varias publicaciones, he intentado:

let storePlanStartDate = dateObject;

storePlanStartDate.setDate(storePlanStartDate.getDate() + 30)

//returns: 1614784325000

Creo que el valor de retorno: 1614784325000 puede ser lo que estoy buscando. Sin embargo, estoy luchando por volver a convertirlo al mismo formato que la devolución de la base de datos original para poder guardar la fecha actualizada.

1
InquisitiveTom 10 ene. 2022 a las 19:32
new Date(1614784325000).toISOString() da '2021-03-03T15:12:05.000Z'
 – 
Nikita Skrebets
10 ene. 2022 a las 19:35
¿Responde esto a tu pregunta? Agregar días a la fecha de JavaScript
 – 
Mark Schultheiss
10 ene. 2022 a las 19:37

1 respuesta

La mejor respuesta

Lo que está viendo es solo la representación predeterminada de una fecha: las fechas se almacenan como una cantidad de milisegundos desde el dato.

Si formatea el valor como una cadena ISO (por ejemplo), verá que en realidad tiene el valor que esperaba

let storePlanStartDate = new Date("2021-01-02T15:12:05.000Z");

storePlanStartDate.setDate(storePlanStartDate.getDate() + 30)

console.log(storePlanStartDate.toISOString());
1
Jamiec 10 ene. 2022 a las 19:38
Eso funcionó, ¡muchas gracias!
 – 
InquisitiveTom
10 ene. 2022 a las 19:49