Javascript - Uhrzeit

JackONeillP5B-E

Cadet 3rd Year
Registriert
Feb. 2007
Beiträge
39
Hallo,

ich möchte auf meiner Seite die Uhrzeit digital ausgeben, und es soll natürlich auch jede Sekunde aktualisiert werden. Ich habe folgendes programmiert:

Code:
  <script type="text/javascript">
    var servertime = new Date("<?php echo date("m, d, Y H:i:s"); ?>");
    var hour = servertime.getHours();
    var min = servertime.getMinutes();
    var sec = servertime.getSeconds();
    document.write("<h2>" + hour + ":" + min + ":" + sec + "</h2>");
  </script>

wobei das nur die Uhrzeit anzeigt, die beim Laden der Seite aktuell war, was eigentlich ja auch klar ist. Gibt es eine Möglichkeit, dass die aktuelle Uhrzeit nur einmal vom Server geholt wird (wie oben gemacht) und javascript die Uhrzeit dann auf dem Client-Rechner aktuell hält mit den Serverdaten?
Ich möchte den Server nur wegen der Zeit ja nicht über Gebühr belasten und jede Sekunde eine Anfrage stellen.

Ich hoffe, ihr könnt mir helfen.

Vielen Dank!
Bart
 
Du kannst die Uhrzeit in ein Formularfeld schreiben lassen. Denn in Formularfeldern können Daten ständig aktualisiert werden. Den Rahmen des Forumlarfeldes bekommst du mithilfe von CSS weg ( border: 0px; ).
 
Danke für deine Hilfe, jetzt hab ich aber nochmals eine Frage, da ich mit javascript noch nichts gemacht habe, sondern immer nur php.
Ich habe folgendes programmiert:

Code:
  <script type="text/javascript">
    var servertime = new Date("<?php echo date("m, d, Y H:i:s"); ?>");
    var hour = servertime.getHours();
    var min = servertime.getMinutes();
    var sec = servertime.getSeconds();
    document.write("<h2>" + hour + ":" + min + ":" + sec + "</h2>");
    document.write("\"hallo\"");
    document.write("<form><input type=\"text\" value=\"" + sec + "\" /></form>");
  </script>

Jetzt steht zwar schon mal die Sekunde im Feld, wird aber nicht hochgezählt jede Sekunde, wie kann ich das erreichen?
Vielen Dank für die Hilfe!
Bart
 
es ist KEIN formular notwendig. ich habe dir hier mal den code zusammengeschrieben. bei mir hats funktioniert

HTML:
<script type="text/javascript">
<!--
  var servertime = new Date("<?php echo date("m, d, Y H:i:s"); ?>");
  var stunden = servertime.getHours();
  var minuten = servertime.getMinutes();
  var sekunden = servertime.getSeconds();

  setTimeout("ClockTick()",0);

  function ClockTick() {
    var stunden2=stunden;
    var minuten2=minuten;
    var sekunden2=sekunden;
    if(stunden2<10) {
      stunden2="t0"+stunden2;
      stunden2=stunden2.substr(1);
    }
    if(minuten2<10) {
      minuten2="t0"+minuten2;
      minuten2=minuten2.substr(1);
    }
    if(sekunden2<10) {
      sekunden2="t0"+sekunden2;
      sekunden2=sekunden2.substr(1);
    }
    document.getElementById("momentanClock").innerHTML=stunden2+":"+minuten2+":"+sekunden2;
    if((sekunden+1)<=59) {
      sekunden=sekunden+1;
    }
    else {
      sekunden=0;
      if((minuten+1)<=59) {
        minuten=minuten+1;
      }
      else {
        minuten=0;
        if((stunden+1)<=23) {
          stunden=stunden+1;
        }
        else {
          stunden=0
        }
      }
    }
    setTimeout("ClockTick()",1000);
  }
//-->
</script>

Serverzeit: <div id="momentanClock">(JavaScript muss aktiviert sein)</div>


ist zwar nicht ganz sauber bei der methode wie einstellige zahlen ne führende 0 bekommen, hab da erst mal ein t0 vorne angehängt und dann das t wieder abgeschnitten. konnte keine bequemere möglichkeit finden :(
 
Zurück
Oben