J'utilise un sélecteur de date qui donne une date au format Sun Jul 7 00:00:00 EDT 2013. Même si le mois indique juillet, si je fais un getMonth, il me donne le mois précédent.
var d1 = new Date("Sun Jul 7 00:00:00 EDT 2013");
d1.getMonth());//gives 6 instead of 7
Qu'est-ce que je fais mal?
javascript
date
développeur747
la source
la source
getYear()
!! ;-)Réponses:
Parce que getmonth () commence à 0. Vous voudrez peut-être
d1.getMonth() + 1
obtenir ce que vous voulez.la source
d1.getMonth() < 12 ? d1.getMonth() + 1 : 1
- sinon le 13 décembre serait le 13, non?getMonth()
La fonction est indexée à zéro. Tu as besoin de faired1.getMonth() + 1
Récemment, j'ai utilisé la bibliothèque Moment.js et je n'ai jamais regardé en arrière. Essayez-le!
la source
En supposant que vous utilisez votre variable
Le mois nécessite un +1 pour être précis, il commence à compter à 0
En revanche ... ces méthodes n'ont PAS besoin d'un plus 1
Et remarquez que ce n'est
.getDate()
PAS le cas.getDay()
J'espère que cela t'aides
Je soupçonne que ces méthodes manquent de cohérence pour des raisons historiques
la source