Petit problème en javascript

nanar -  
grofwa Messages postés 440 Statut Membre -
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

nanar
 
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 Statut Membre 479
 
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
nanar
 
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 Statut Membre 479
 
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