Me gustaría una variable para contener la fecha de ayer en el formato DD-MM-YYYY usando Moment.js. Entonces, si hoy es 15-04-2015, me gustaría restar un día y tener 14-4-2015.
He probado algunas combinaciones como esta:
startdate = moment().format('DD-MM-YYYY'); startdate.subtract(1, 'd');y esto:
startdate = moment().format('DD-MM-YYYY').subtract(1, 'd');y tambien esto:
startdate = moment(); startdate.subtract(1, 'd'); startdate.format('DD-MM-YYYY')Pero no lo estoy entendiendo...
Tienes múltiples rarezas sucediendo. El primero ha sido editado en su publicación, pero tenía que ver con el orden en que se llamaban a los métodos.
.format devuelve una cadena. String no tiene un método de subtract .
El segundo problema es que está restando el día, pero en realidad no lo está guardando como una variable.
Su código, entonces, debería verse así:
var startdate = moment(); startdate = startdate.subtract(1, "days"); startdate = startdate.format("DD-MM-YYYY");Sin embargo, puede encadenar esto juntos; esto se vería como:
var startdate = moment().subtract(1, "days").format("DD-MM-YYYY");La diferencia es que estamos configurando startdate a los cambios que estás haciendo en startdate, porque el momento es destructivo.
startdate = moment().subtract(1, 'days').format('DD-MM-YYYY');
var date = new Date(); var targetDate = moment(date).subtract(1, 'day').toDate(); // date objectAhora, puede formatear cómo quiere ver esta fecha o puede comparar esta fecha con otra, etc.
la función toDate() es el punto.