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

  1. 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
  2. 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