Cómo restar 7 días de la fecha actual con Moment.js

2 minutos de lectura

avatar de usuario de redrom
redrom

me gustaria restar 7 días a partir de la fecha actual para obtener la fecha formateada YYYY-MM-DD usando la biblioteca moment.js.

Traté de hacer de esta manera:

dateTo = moment(new Date()).format('YYYY-MM-DD');
dateFrom = moment(new Date() - 7).format('YYYY-MM-DD');

console.log(dateFrom);
console.log(dateTo);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.4/moment.min.js"></script>

Pero todos los valores devueltos son iguales.

avatar de usuario de stu_sha
stu_sha

Tal vez:

dateTo = moment().format('YYYY-MM-DD');
dateFrom = moment().subtract(7,'d').format('YYYY-MM-DD');

momento#restar

  • También vale la pena señalar, moment(new Date()) === moment()

    – Espacio de tiempo

    17/09/2014 a las 12:54

  • Impresionante, pero ¿cómo puedo obtener la fecha cuando paso de la fecha como parámetros (de otra manera, la fecha actual no es hoy)?

    – Hungnn

    14 de febrero a las 2:52

El objeto de fecha, cuando se convierte, está en milisegundos. entonces:

dateFrom = moment(Date.now() - 7 * 24 * 3600 * 1000).format('YYYY-MM-DD'); 

  • ¿Y si me gustaría pasar algo como dateTo – dateFrom?

    – redrom

    17/09/2014 a las 10:39

  • Date.getMilliseconds()

    – Vinz243

    17/09/2014 a las 12:53

  • Este enfoque no es seguro para fechas cercanas a las transiciones de horario de verano. No todos los días tienen 24 horas de duración.

    – Matt Johnson-Pint

    17/09/2014 a las 17:29


Avatar de usuario de Samuel Chibuike
samuel chibuike

Puedes usar:

moment().subtract(1,'w')

para restar una semana (7 días) de la fecha actual.

NOTE:
1. w for week
2. d for days
3. M for month
4. y for year

  • solo nota que 'M' debe usarse para el mes, 'm' significa minutos según el documento. Referencia: momentjs.com/docs/#/manipulating/add

    – Tyson Z.

    25 de julio de 2022 a las 22:24


  • buena captura @TysonZ

    –Samuel Chibuike

    17 de agosto de 2022 a las 12:14

para un selector de fecha y uso

 first_day: moment()
    .subtract(5, "day")
    .endOf("day")
    .toDate(),
  last_day: moment()
    .endOf("day")
    .toDate(),

La pregunta está desactualizada, al igual que la solución.

Usando Momento v2.29 +

Puede sumar o restar días usando las siguientes formas

moment().day(-7); // last Sunday (0 - 7)
moment().day(0); // this Sunday (0)
moment().day(7); // next Sunday (0 + 7)
moment().day(10); // next Wednesday (3 + 7)
moment().day(24); // 3 Wednesdays from now (3 + 7 + 7 + 7)

Para obtener más información, consulte la documentación oficial. https://momentjs.com/docs/#/get-set/

Avatar de usuario de Rohit Parte
Rohit Parte

El método más fácil para obtener el último día 7

moment().subtract(7, 'days').startOf('day').format('YYYY-MM-DD HH:mm:ss')

¿Ha sido útil esta solución?