Thomas Häber: Fehler bei Datumsanzeig im N6

Habe ein Problem mit der Jahreszahl unter N6 dort wird anstatt 2001, 101 angegeben. Zusätzlich baut N6 den dynamischen div-layer so langsam auf das ein Intervall-Flimmern bewirkt kann man dies ohne die veränderung des 1-Sekundentaktes vermeiden?

Hier der Code (funktioniert aber nich nicht unter N4 - aber das ist egal):

<html>
<head>
  <title></title>

<script language="JavaScript1.2" type="text/javascript">
<!--

Wochentagname = new Array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
 Monatsname = new Array("Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");

<!-- Funktion für dynamische Zeit+Datum -->
function ZeitAnzeigen()
{
 var Jetzt = new Date();
 var Tag = Jetzt.getDate();
 var Monat = Jetzt.getMonth();
 var Jahr = Jetzt.getYear();
 var Stunden = Jetzt.getHours();
 var Minuten = Jetzt.getMinutes();
 var Sekunden = Jetzt.getSeconds();
 var WoTag = Jetzt.getDay();
 var Vortag  = ((Tag < 10) ? "0" : "");
 var Vormon  = ((Monat < 10) ? ".0" : ".");
 var Vorstd  = ((Stunden < 10) ? "0" : "");
 var Vormin  = ((Minuten < 10) ? ":0" : ":");
 var Vorsek  = ((Sekunden < 10) ? ":0" : ":");
 var Datum = Wochentagname[WoTag] + ", " + Vortag + Tag + ". " + Monatsname[Monat]  + " " + Jahr;
 var Uhrzeit = Vorstd + Stunden + Vormin + Minuten;

if(document.getElementById) {
   document.getElementById("MicrosoftUhr").innerHTML = Uhrzeit;
   document.getElementById("MicrosoftDatum").innerHTML = Datum;
   }
 else if(document.all) {
   document.all.MicrosoftUhr.innerHTML = Uhrzeit;
   document.all.MicrosoftDatum.innerHTML = Datum;
   }
 else if(document.layers) {
   document.NetscapeUhr.document.open();
   document.NetscapeUhr.document.write(Uhrzeit);
   document.NetscapeUhr.document.close();
   document.NetscapeDatum.document.open();
   document.NetscapeDatum.document.write(Datum);
   document.NetscapeDatum.document.close();
  }

window.setTimeout("ZeitAnzeigen()",1000);
}

window.setTimeout("ZeitAnzeigen()",1000);
//-->
</script>
</head>
<body bgcolor="#3366FF" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<table align="center" width="200" height="36" cellspacing="0" cellpadding="0" cellspacing="0" border="0">
<tr><td align="right"><a style="font-family:Arial,Verdana;text-decoration:none;" href="http://www.uhrzeit.org" target="_blank">
<div id="MicrosoftUhr" style="color:#FFFFFF;"><layer id="NetscapeUhr" style="color:#FFFFFF;"></layer></div>

</a></td></tr>

<tr><td align="right">
<a style="font-family:Arial,Verdana;text-decoration:none;" href="javascript:fensteroeffnen(&#39;nein&#39;,&#39;../extras/kalender2.html&#39;,&#39;_blank&#39;,&#39;width=240,height=270,resizable=0,scrollbars=0&#39;)">
<div id="MicrosoftDatum" style="color:#FFFFFF;"><layer id="NetscapeDatum" style="color:#FFFFFF;"></layer></div>

</a></td></tr></table>
</body>
</html>

Vielen Dank im Voraus.
Thomas

  1. Hallo!

    Habe ein Problem mit der Jahreszahl unter N6 dort wird anstatt 2001, 101 angegeben.

    Dies ist kein Problem mit N6.

    var Jahr = Jetzt.getYear();

    Hier erhälst Du die Anzahl der Jahre seit 1900, folglich 2001 = 101

    Lösung:

    var Jahr = Jetzt.getYear();
    Jahr += 1900;

    Gruss Markus

    1. Hallo,

      das mit dem +1900 ist keine gute Lösung, da der IE 2001 lierfert und der NS Jahre seit 1900 also 101.
      Lösung ist die Funktion getFullYear() sie liefert in allen Browsern die korrekte vierstellige Jahreszahl.

      Tip: Niemals getYear() immer getFullYear() benutzen.

      Mike