Addon : Echtzeituhr für UA

Hier können sich alle gegenseitig helfen beim erstellen eines Spiels

Moderator: Agatho

Addon : Echtzeituhr für UA

Einfache Umsetzung einer Uhr

Beitragvon Forsaker » 02.02.2006, 21:39

Hier ein kleines Uhrenbeispiel auf Serverbasis.
Als Vergleich habe ich nochmal die Javascript-only version (=> ClientUhrzeit) dabei gepackt).

Bei jeder Seitenaktualisierung wird aus den Datumskonstanten von PHP ein Datum generiert.

Javascript nimmt nun dieses Datum und addiert jede 1000ms eine Sekunde hinzu und schreibt es neu hin. Dies passiert Clientseitig und belastet den Server nicht.

Leider kommt es zwar zu ein paar milisekunden Versatz, da die Pausen von 1000ms nicht immer 100% genau sind, aber die alternative von sekündlichen Pagerefreshs ist nicht wirklich effizient.

Ich hoffe ihr könnt was mit anfangen ....


Code: Alles auswählen
<?php
$Javascriptzeit = date("D M d H:i:s ");

// D   Tag der Woche gekürzt auf drei Buchstaben   Mon bis Sun
// M   Monatsname mit drei Buchstaben   Jan bis Dec
// d   Tag des Monats, 2-stellig mit führender Null   01 bis 31
// H   24-Stunden-Format, mit führenden Nullen   00 bis 23
// i   Minuten mit führenden Nullen   00 bis 59
// s   Sekunden, mit führenden Nullen   00 bis 59


// Zeitzone (=> Deutsch = +1h
$Javascriptzeit .= "UTC";
// Jahr
$Javascriptzeit .= date("O Y");
?>


<html>
<head>

<script language="JavaScript">
<!--
   // Javascript holt sich das Datum von den PHP-Konstanten(Serverseitig)
   var Serverzeit = new Date("<?php echo $Javascriptzeit; ?>");
   // Javascript holt sich das Datum vom Client
   var Clientzeit = new Date();
function UhrzeitAnzeigen()
{

   if(!document.all && !document.getElementById)
   {
      return;
   }
   var Stunden = Serverzeit.getHours();
   var Minuten = Serverzeit.getMinutes();
   var Sekunden = Serverzeit.getSeconds();
   Serverzeit.setSeconds(Sekunden+1);
   
   // Wenn die Uhrzeit nur einstellig ist, dann Nullen auffüllen
   // Macht PHP ab 4.x eigentlich automatisch, aber man kann ja nie
   // wissen ;)
   if(Stunden <= 9) {Stunden = "0" + Stunden;}
   if(Minuten <= 9) {Minuten = "0" + Minuten;}
   if(Sekunden <= 9) {Sekunden = "0" + Sekunden;}
   Uhrzeitanzeige = Stunden + ":" + Minuten + ":" + Sekunden;
   
   if(document.getElementById) {
      document.getElementById("Uhrzeit").innerHTML = Uhrzeitanzeige;
   }
   else if(document.all) {
      Uhrzeit.innerHTML = Uhrzeitanzeige;
   }
   
   setTimeout("UhrzeitAnzeigen()", 1000);
   }
   
   
   // #########################################
   
function ClientUhrzeitAnzeigen()
   {

      if(!document.all && !document.getElementById)
   {
      return;
   }
   var Stunden = Clientzeit.getHours();
   var Minuten = Clientzeit.getMinutes();
   var Sekunden = Clientzeit.getSeconds();
   Clientzeit.setSeconds(Sekunden+1);
   
   // Wenn die Uhrzeit nur einstellig ist, dann Nullen auffüllen
   if(Stunden <= 9) {Stunden = "0" + Stunden;}
   if(Minuten <= 9) {Minuten = "0" + Minuten;}
   if(Sekunden <= 9) {Sekunden = "0" + Sekunden;}
   Uhrzeitanzeige = Stunden + ":" + Minuten + ":" + Sekunden;
   
   if(document.getElementById) {
      document.getElementById("ClientUhrzeit").innerHTML = Uhrzeitanzeige;
   }
   else if(document.all) {
      Uhrzeit.innerHTML = Uhrzeitanzeige;
   }
   
         setTimeout("ClientUhrzeitAnzeigen()", 1000);
   }
   
   

      //-->
   </script>
      <title>Uhrzeit des Webservers mit Javascript und PHP dynamisch anzeigen</title>

      </head>     
<body onLoad="UhrzeitAnzeigen();ClientUhrzeitAnzeigen()">
      Server-Uhrzeit: <span id="Uhrzeit"></span>
      <br>
      Client-Uhrzeit: <span id="ClientUhrzeit"></span>
</body>
</html>
Forsaker
Spielball der Götter
Spielball der Götter
 
Beiträge: 44
Registriert: 26.08.2005, 18:53

Beitragvon Agatho » 03.02.2006, 21:18

*ffg* na danke jetzt weiss ich wenigstens wie du im forum heisst :) ich schau mal ob ich das bei mir so einbaun kann.

Lg und feier gut Agatho
Agatho
Sourcenoob Tröster
Sourcenoob Tröster
 
Beiträge: 132
Registriert: 29.01.2004, 02:59
Wohnort: Mayence


Zurück zu Bastelstube für die CVS Version

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste