Me gustaría que una variable contenga la fecha de ayer en el formato que DD-MM-YYYYusa Moment.js. Entonces, si hoy es 15-04-2015, me gustaría restar un día y tener 14-4-2015.
Probé 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 también esto:
startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY')
Pero no lo entiendo ...
javascript
date
momentjs
beaumondo
fuente
fuente

format()es la función que lo convierte en una cadena. Deberías hacer eso último.Respuestas:
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 los métodos.
.formatdevuelve una cadena. String no tienesubtractmétodo.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í:
Sin embargo, puede encadenar esto; esto se vería así:
La diferencia es que estamos configurando fecha de inicio para los cambios que está haciendo en fecha de inicio, porque el momento es destructivo.
fuente
subtractes, de hecho, destructivo. "Muta el momento original restando tiempo". Ver aquí: momentjs.com/docs/#/manipulating/subtractfuente
Prueba esto:
Esto le dará
14-04-2015- hoy es 15-04-2015Alternativamente, si su versión de momentjs es menor que 2.8.0, puede usar:
En lugar de esto:
fuente
startdate = moment().subtract(1, 'days').startOf('day')fuente
Creo que lo consiguió en ese último intento, solo necesita agarrar la cadena ... en la consola de Chrome ...
fuente
En momento angularjs = "^ 1.3.0"
fuente
Ahora, puede formatear cómo desea ver esta fecha o puede comparar esta fecha con otra, etc.
La función toDate () es el punto.
fuente