javascript - examples - Formatee la fecha y reste días usando Moment.js
moment timestamp to date (7)
Me gustaría que una variable contenga 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 intentado 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 ...
Creo que lo tienes en ese último intento, solo necesitas agarrar la cuerda ... en la consola de Chrome ...
startdate = moment();
startdate.subtract(1, ''d'');
startdate.format(''DD-MM-YYYY'');
"14-04-2015"
startdate = moment();
startdate.subtract(1, ''d'');
myString = startdate.format(''DD-MM-YYYY'');
"14-04-2015"
myString
"14-04-2015"
En el momento angularjs = "^ 1.3.0"
moment(''15-01-1979'', ''DD-MM-YYYY'').subtract(1,''days'').format(); //14-01-1979
or
moment(''15-01-1979'', ''DD-MM-YYYY'').add(1,''days'').format(); //16-01-1979
``
Prueba esto:
var duration = moment.duration({''days'' : 1});
moment().subtract(duration).format(''DD-MM-YYYY'');
Esto te dará
14-04-2015
-
hoy es 15-04-2015
Alternativamente, si su versión de momentjs es inferior a 2.8.0, puede usar:
startdate = moment().subtract(''days'', 1).format(''DD-MM-YYYY'');
En lugar de esto:
startdate = moment().subtract(1, ''days'').format(''DD-MM-YYYY'');
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.
.format
devuelve una cadena.
La cadena no tiene un método de
subtract
.
El segundo problema es que estás restando el día, pero en realidad no estás guardando eso 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, puedes encadenar esto juntos; esto se vería así:
var startdate = moment().subtract(1, "days").format("DD-MM-YYYY");
La diferencia es que estamos configurando startdate para los cambios que estás haciendo en startdate, porque el momento es destructivo.
startdate = moment().subtract(1, ''days'').startOf(''day'')
var date = new Date();
var targetDate = moment(date).subtract(1, ''day'').toDate(); // date object
Ahora, puede formatear cómo quiere ver esta fecha o puede comparar esta fecha con otra, etc.
La función toDate () es el punto.
startdate = moment().subtract(1, ''days'').format(''DD-MM-YYYY'');