Petit problème en javascript

Fermé
nanar - 2 août 2004 à 15:46
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 - 3 août 2004 à 08:10
Bonjour,

Voici mon petit problème.

J'utilise trois navigateurs : Mozilla 1.7.1, Opera 7.01 et MSIE 5.5 (sous windows 98 SE)

Lorsque j'appelle la page html, seul Opera me donne la bonne réponse ...

Si vous avez installé Opera et un autre navigateur, vous pouvez constater les différences via un copier/coller du code ci-dessous dans le bloc note et en l'enregistrant sous 'test.htm".

Il s'agit de déterminer le mois d'une date.

D'avance merci pour vos solutions ou propositions.

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta http-equiv="Content-Language" content="fr-be">
<script language="Javascript">

function valid()
{

   date_=document.forms[0].elements["date"].value;

   // décompostion de la chaîne en nombres

   annee=parseInt(date_.substr(0,4));
   mois=parseInt(date_.substr(5,2));
   jour=parseInt(date_.substr(8,2));

   alert("month = "+date_.substr(5,2));
   alert("month = "+mois); // the result is not correct with Mozilla 1.7.1
                           // when date_ = 1998-08-08   
   
}

</script>

<title>bug</title>
</head>

<body>

<p>Apparently, exist a bug with mozilla 1.7.1 (and MSIE 5.50)</p>
<p>This javascript make a mistake with date 1998-08-28</p>
<p>( but not with 2000-01-28, for example )</p>
<p>Test yourself </p>
<form>
  <p>date : <input type="text" name="date" size="10"> (aaaa-mm-jj) <input type="submit" value="Afficher" onclick="valid()"></p>
</form>
<p> </p>
<p>With the browser Opera 7.01<br>
and this same file ("test-bug.htm"), no error ...</p>

</body>

</html>

4 réponses

Vous pouvez tester la page on line sur :

http://users.swing.be/compagnons-eole/test_bug.htm

avec différents navigateurs. Essayez avec la date 1998-08-28 ...
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
2 août 2004 à 16:40
Tu as essayé avec
parseInt(value, 10)

Michael

PS : jette un coup d'oeil sur cette discussion :
http://www.breakingpar.com/bkp/home.nsf/Doc?OpenNavigator&U=87256B280015193F87256C85006A6604

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0
Merci

L'article suggéré est très intéressant.
J'ignorais que la fonction parseInt() avait un bug.

Si je remplace dans le script

mois=parseInt(date_.substr(5,2));

par

mois=parseInt(date_.substr(5,2),10);

Cela fonctionne avec tous les navigateurs

Encore merci
0
grofwa Messages postés 440 Date d'inscription jeudi 24 juillet 2003 Statut Membre Dernière intervention 21 juillet 2006 479
3 août 2004 à 08:10
Salut,

Si tu as bien lu l'article, on ne peut pas vraiment parler de bug.
Juste que tout le monde a tendance à croire que le système décimal est le système par défaut...

Michael.

Ne vous souciez pas de n'être pas remarqué ; cherchez 
plutôt à faire quelque chose de remarquable [Confucius]
0

Discussions similaires