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>


ich schau mal ob ich das bei mir so einbaun kann.
