[javascript] Date()
kciop
-
gav -
gav -
Bonjour,
J'ai un problème avec la classe Date en javascript.
Ce bout de code mis dans la barre d'adresse d'un navigateur m'affiche une fenetre avec un : 0.
ce code lui m'affiche : 2
et celui ci m'affiche : 2 egalement
Si je comprends bien l'objet date doit renvoyer le numéro du mois de l'année - 1 or j'ai l'impression que ca ne marche pas...
Est ce que j'ai fait une erreur dans ce ptit bout de code?
Merci de votre aide!
--
Kciop
J'ai un problème avec la classe Date en javascript.
javascript:date = new Date(); date.setMonth(0);alert(date.getMonth());
Ce bout de code mis dans la barre d'adresse d'un navigateur m'affiche une fenetre avec un : 0.
javascript:date = new Date(); date.setMonth(1);alert(date.getMonth());
ce code lui m'affiche : 2
javascript:date = new Date(); date.setMonth(2);alert(date.getMonth());
et celui ci m'affiche : 2 egalement
Si je comprends bien l'objet date doit renvoyer le numéro du mois de l'année - 1 or j'ai l'impression que ca ne marche pas...
Est ce que j'ai fait une erreur dans ce ptit bout de code?
Merci de votre aide!
--
Kciop
A voir également:
- [javascript] Date()
- Telecharger javascript - Télécharger - Langages
- Jm date avis - Forum Consommation & Internet
- Airpods 3 date de sortie - Guide
- Jm date désabonnement - Forum Gmail
- Javascript arrondi ✓ - Forum Javascript
3 réponses
Bonsoir
Les mois sont indicés de 0 à 11 et non 1 à 12.
0 pour Janvier
...
11 pour décembre
En espérant t'aider.
Les mois sont indicés de 0 à 11 et non 1 à 12.
0 pour Janvier
...
11 pour décembre
En espérant t'aider.
Salut!
Du code Javascript n'est pas une URL. Dès lors, si tu le tapes dans la barre d'adresse de ton navigateur, il y a beaucoup de chance que cela ne fonctionne pas.
Insère ton code dans une page HTML et tu verras qu'il fonctionne tout-à-fait correctement car là il sera interprété:
;-)
HackTrack
Du code Javascript n'est pas une URL. Dès lors, si tu le tapes dans la barre d'adresse de ton navigateur, il y a beaucoup de chance que cela ne fonctionne pas.
Insère ton code dans une page HTML et tu verras qu'il fonctionne tout-à-fait correctement car là il sera interprété:
<html> <head> <script> function testDates(){ date = new Date(); date.setMonth(0);alert(date.getMonth()); date = new Date(); date.setMonth(1);alert(date.getMonth()); date = new Date(); date.setMonth(2);alert(date.getMonth()); } </script> </head> <body onload="testDates();"> </body> </html>
;-)
HackTrack
Hello!
Bon et bien merci pour les réponses mais j'ai trouvé pourquoi ca ne marchait pas.
A+
--
kciop
Bon et bien merci pour les réponses mais j'ai trouvé pourquoi ca ne marchait pas.
A+
--
kciop
C'est un problème assez bête finalement :
Tu utilises ta fonction le 31 décembre donc month=11 day=31.
Si tu mets month=10 (novembre) ou n'importe quel mois qui n'a pas de 31, alors javascript fait un ptit calcul : 31 novembre ça n'existe pas donc c'est le 1er décembre.
La solution consiste à créer une date qui commence un premier janvier, par exemple tu fais new Date(0) qui équivaut au 1er janvier 1970. Ensuite tu sets ce que tu veux pour créer ton objet date.
Voilà!
Tu utilises ta fonction le 31 décembre donc month=11 day=31.
Si tu mets month=10 (novembre) ou n'importe quel mois qui n'a pas de 31, alors javascript fait un ptit calcul : 31 novembre ça n'existe pas donc c'est le 1er décembre.
La solution consiste à créer une date qui commence un premier janvier, par exemple tu fais new Date(0) qui équivaut au 1er janvier 1970. Ensuite tu sets ce que tu veux pour créer ton objet date.
Voilà!
Je tiens tout d'abord à m'excuser car mon message n'était pas clair.
Mon code fait quelque chose d'assez stupide puisqu'il assigne un mois et tout de suite apres il l'affiche.
En gros, qu'il affiche de 0 à 11 ou de 1 à 12 n'a que peu d'importance.
setMonth assigne donc un mois (de 0 à 11) et getMonth l'affiche (de 0 à 11).
Le problème c'est qu'on lui assigne 1 et il nous affiche 2. Alors que pour 2 il nous affiche bien 2. Il en va de même pour d'autres numéros...
Je voulais savoir si c'était un bug ou si j'avais mal tapé quelque chose sur ce bout de code. Est ce que quelqu'un peu m'expliquer pourquoi Date fonctionne ainsi?
Merci
--
Kciop