J'ai besoin de calculer une date JS donnée année = 2014 et mois = 9 (septembre 2014).
J'ai essayé ceci:
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());
Les deux journaux montrent:
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
Tue Sep 30 2014 23:59:59 GMT+0200 (CEST)
La date de fin est correcte mais ... pourquoi la date de début ne l'est pas?
javascript
momentjs
Fabio B.
la source
la source
moment
est idempotent donc vous pouvez également utiliserendDate = moment(starDate).endOf("month")
^. ^moment(<value>)
. Mise à jour de l'exemple pour utiliser certaines des fonctions plus courtes.add(-1,"month")
ne fonctionne pas quand son janvier et vous voulez obtenir le mois de l'année dernière.vous pouvez l'utiliser directement pour la date de fin ou de début du mois
vous pouvez changer le format en définissant un nouveau format
la source
Lorsque vous utilisez,
.endOf()
vous faites muter l'objet sur lequel il est appelé, doncstartDate
devient 30 septembreVous devriez utiliser
.clone()
pour en faire une copie au lieu de le changerla source
Essayez le code suivant:
la source
Ne pensez pas vraiment qu'il existe une méthode directe pour obtenir le dernier jour, mais vous pouvez faire quelque chose comme ceci:
la source
votre date de début est le premier jour du mois, dans ce cas, nous pouvons utiliser
J'espère que cela t'aides!!
la source
doc
la source
la source
Veuillez noter que .clone () est essentiel dans momentjs sinon il remplacera la valeur. Cela semble dans votre cas.
C'est plus générique, pour obtenir un tas de dates qui tombent entre les dates.
la source
Le code suivant devrait fonctionner:
la source
Essayez le code suivant:
la source