Bonjour,
Je travaille à la conception d'un agenda et je voudrais vous faire partager ma découverte d'aujourd'hui. Je l'ai repérée sur IE8, FF3.5, Chrome et n'ai pas testé d'autres navigateurs.
Ouvrez une console JS et saisissez :
L'effet escompté est de créer une date qui sera le 12 février 2010.Code:
1
2
3
4
5
6
7
8
9
10 var dateD=new Date(); dateD.setMonth(1); dateD.setYear(2010); dateD.setHours(0); dateD.setMinutes(0) dateD.setHours(0); dateD.setSeconds(0); dateD.setDate(12); console.log(dateD);
Mais le résultat obtenu est :
Changez le paramètre de setMonth en n'importe quel autre entier entre 0 et 11 compris, la valeur obtenue correspond bien à celle attendue.Code:Fri Mar 12 2010 00:00:00 GMT+0100 {}
(Notez que pour la valeur 2 qui indique le mois de mars on obtient alors la même valeur que le premier test)
Retentez l'expérience avec :
La différence se situe dans le fait que nous déclarons le jour du mois en même temps que le mois et cela renvoie la valeur attendue :Code:
1
2
3
4
5
6
7
8
9 var dateD=new Date(); dateD.setMonth(1,12); dateD.setYear(2010); dateD.setHours(0); dateD.setMinutes(0) dateD.setHours(0); dateD.setSeconds(0); console.log(dateD);
Qu'en pensez-vous ?Code:Fri Feb 12 2010 00:00:00 GMT+0100 {}