Necesito calcular una fecha de JS dado año = 2014 y mes = 9 (septiembre de 2014).
Probé esto:
var moment = require('moment');
var startDate = moment( year+'-'+month+'-'+01 + ' 00:00:00' );
var endDate = startDate.endOf('month');
console.log(startDate.toDate());
console.log(endDate.toDate());
Ambos registros muestran:
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
La fecha de finalización es correcta pero ... ¿por qué la fecha de inicio no lo es?
javascript
momentjs
Fabio B.
fuente
fuente
moment
es idempotente, por lo que también podría usarendDate = moment(starDate).endOf("month")
^. ^moment(<value>)
. Se actualizó el ejemplo para usar algunas de las funciones más cortas.add(-1,"month")
no funciona cuando es enero y desea obtener el mes del año pasado.puede usar esto directamente para la fecha de finalización o inicio del mes
puede cambiar el formato definiendo un nuevo formato
fuente
Cuando lo usa
.endOf()
, está mutando el objeto al que se llama, por lo que sestartDate
convierte en 30 de septiembreDebería usar
.clone()
para hacer una copia en lugar de cambiarlofuente
Prueba el siguiente código:
fuente
Realmente no creo que haya algún método directo para obtener el último día, pero podrías hacer algo como esto:
fuente
su fecha de inicio es el primer día del mes, en este caso podemos usar
¡¡Espero que esto ayude!!
fuente
Doc
fuente
fuente
Tenga en cuenta que .clone () es esencial en momentjs, de lo contrario anulará el valor. Parece en tu caso.
Es más genérico, para obtener un montón de citas que caen entre fechas.
fuente
El siguiente código debería funcionar:
fuente
Prueba el siguiente código:
fuente