Erreur de date dans Ie ou Firefox

Résolu
Musicboxpro Messages postés 5 Statut Membre -  
Musicboxpro Messages postés 5 Statut Membre -
Bonjour,

Je m'arrache les cheveux à comprendre pourquoi le résultat de ce javascript ne fonctionne pas exactement sur Internet Explorer ou Firefox selon comme il est écrit:

Comme ça il fonctionne dans Firefox mais pas Ie (année 3910 !!!)
<script LANGUAGE="JavaScript">

<!-- Begin
var day="";
var month="";
var ampm="";
var ampmhour="";
var myweekday="";
var year="";
mydate = new Date();
myday = mydate.getDay();
mymonth = mydate.getMonth();
myweekday= mydate.getDate();
weekday= myweekday;
myyear= mydate.getYear();
myhours = mydate.getHours();
ampmhour = (myhours > 24) ? myhours - 24 : myhours;
ampm = (myhours >= 12) ? ' après-midi' : ' matin';
mytime = mydate.getMinutes();
myminutes = ((mytime < 10) ? ':0' : ':') + mytime;
year = (myyear > 99) ? myyear : 1900 + myyear;
if(myday == 0)
day = " Dimanche ";
else if(myday == 1)
day = " Lundi ";
else if(myday == 2)
day = " Mardi ";
else if(myday == 3)
day = " Mercredi ";
else if(myday == 4)
day = " Jeudi ";
else if(myday == 5)
day = " Vendredi ";
else if(myday == 6)
day = " Samedi ";
if(mymonth == 0) {
month = "janvier ";}
else if(mymonth ==1)
month = "février ";
else if(mymonth ==2)
month = "mars ";
else if(mymonth ==3)
month = "avril ";
else if(mymonth ==4)
month = "mai ";
else if(mymonth ==5)
month = "juin ";
else if(mymonth ==6)
month = "juillet ";
else if(mymonth ==7)
month = "août ";
else if(mymonth ==8)
month = "septembre ";
else if(mymonth ==9)
month = "octobre ";
else if(mymonth ==10)
month = "novembre ";
else if(mymonth ==11)
month = "décembre ";
// End -->
</script>
<table border="0" width="100%" align="center">
<tr>
<td width="100%" align="center" valign="top"><font face="Arial"><script>
document.write("<b><font color=#ffffff size='2' face='arial'>" + "Nous sommes le")
document.write(day + myweekday + " " + month);
document.write(year + "<br>il est ");
document.write(myhours + "h" + myminutes +"</font>");
</script> </font></td>
</tr>
</table>

Si je change la ligne:
year = (myyear > 99) ? myyear : 1900 + myyear;

en:
year = (myyear > 99) ? myyear + 1900 : myyear;

l'année est affichée correctement dans Ie mais pas dans Firefox qui indique 110.

Quelqu'un pourrait m'aider ?

Question subsidiaire: Comment puis-je externaliser mon script (horloge.js) et le faire fonctionner correctement ?

Merci d'avance pour vos suggestions et bonnes fêtes de fin d'année.

2 réponses

  1. Aka13 Messages postés 184 Statut Membre 8
     
    Tu veut afficher la date sur ton site ?
    0
    1. Musicboxpro Messages postés 5 Statut Membre
       
      Oui, selon le format suivant:

      Nous sommes le Lundi 20 décembre 2010
      il est 17h:48

      Merci encore de t'y intéresser
      0
    2. Aka13 Messages postés 184 Statut Membre 8
       
      Je peut t'aider en mettant la date sous la forme :
      Nous sommes le 20/12/2010
      Il est 18h01


      Pour cela il faut que tu insère du PHP dans ton code (en haut du code de préférence) :

      <php
      $date = date("d/m/Y");
      $heure = date("H\hi");
      ?>


      Après sa dépend

      -Si ton code est en PHP tu insère ce code ou tu veut que la date soit mise :
      Nous sommes le $date\nIl est $heure

      -Si ton code est en HTML tu insère ce code ou tu veut que la date soit mise :
      Nous sommes le <? echo $date ?><br>
      Il est <? echo $heure ?>
      0
    3. Aka13 Messages postés 184 Statut Membre 8
       
      PS : Sa change ton code immense, de mon code a 5 lignes :p
      0
    4. Musicboxpro Messages postés 5 Statut Membre
       
      Merci Aka, mais il ne semble pas fonctionner, ça n'affiche que les texte mais pas les dates:

      Nous sommes le
      Il est

      et j'aimerais assez garder le format de base que j'avais avant dans ma page html:

      Nous sommes le Lundi 20 décembre 2010
      il est 18h:28
      0
    5. Musicboxpro Messages postés 5 Statut Membre
       
      J'ai presque réussi avec ce script:

      <script type="text/javascript">
      d = new Date();
      document.write("<p>Nous sommes le <span style='color:#fff;'>");
      document.write(d.toLocaleDateString());
      document.write("</span><br>");
      document.write("<p>Il est <span style='color:#fff;'>");
      document.write(d.toLocaleTimeString());
      document.write("</span></p>");
      </script>

      Mais peut-on n'afficher que les heures et minutes, sans les secondes ?
      0
  2. Musicboxpro Messages postés 5 Statut Membre
     
    Voilà, je vais me contenter de ce script:

    <script type="text/javascript">
    d = new Date();
    h = d.toLocaleTimeString();
    document.write("<p>Nous sommes le <span style='color:#fff;'>");
    document.write(d.toLocaleDateString());
    document.write("</span><br>");
    document.write("<p>Il est <span style='color:#fff;'>");
    document.write(h.substr(0, 5));
    document.write("</span></p>");

    </script>

    Un grand merci à Aka13 et mon pote Tob' pour votre aide et mes meilleurs voeux à tous pour les fêtes de fin d'année.
    0