Fortlaufende Serverzeit

MegaBlue

Grünschnabel
Hallo Comm,

ich möchte gerne das auf meiner Homepage die aktuelle Serverzeit
ausgegeben wird und im sekundentakt weiter läuft.
Ich bin nun schon weit (code folgt) das ich die Serverzeit per Javascript
angezeigt bekomme aber sie nicht weiter läuft.
Ich habe dazu ein Script von einer anderen Seite benutzt wo halt die Clientzeit
benutzt wird.

So ich hatte auch noch ne andere Anfrage bei jemandem gemacht und der hat mir nun ein gutes Ergebniss geliefert.
Was ich euch natürlich nicht vorenthalten möchte.

hier der code dazu
PHP:
<?
echo "<html>
        <head><title>Serverzeit</title></head>
        <body>
        <table align='center'
					<tr>
						<td id='Uhr'>
							
						</td>
					</tr>
				</table>";
?>
<script type="text/javascript">
<!--
function SrvTime(zeit){
	var now = new Date(zeit);
	var day=now.getDate();
	var month=now.getMonth()+1;
	var year=now.getFullYear();
	if(year<999) year+=1900;
	var h=now.getHours();
	var m=now.getMinutes();
	var s=now.getSeconds();
	var text = "Serverzeit: ";
	var Gesamt= text+((day<10)?"0":"")+day+((month<10)?".0":".")+month+"."+year+ " - "+((h<10)?"0":"")+h+((m<10)?":0":":")+m+((s<10)?":0":":")+s;
	document.getElementById('Uhr').innerHTML=Gesamt;
	window.setTimeout("SrvTime("+(zeit+1000)+")",999);
	}
	window.setTimeout('SrvTime(<? echo time() * 1000; ?>)',999)
//-->
</script>


Ich hoffe ich kann damit jemanden weiter helfen.
Und ich habe wieder was dazu gelernt.

MfG
Uwe
 
Zuletzt bearbeitet:
Hallo,

soweit ich weiß, gibt es keine Möglichkeit in Javascript, die Zeit des Webservers auszulesen.
Vielleicht (ich weiß es leider nicht) gibt es in AJAX eine Möglichkeit, mit dem Ausführen einer Datei irgendwelche Daten an das Script zu übermitteln.

Was aber gehen würde (da ist eben nur am Anfang die Zeit vom Server, danach wird einfach weitergezählt):
PHP:
<?php
$min = date('i', time());
$hour = date('H', time());
$sec = date('s', time());

if ( $min >= 1 )
{
	$sec += $min*60;
}
if ( $hour >= 1 )
{
	$sec += $hour*60*60;
}
//echo $sec;
?>

<html>
<head>
       <title>Title here!</title>
</head>

<script type="text/javascript">
function cntTime(s)
{
	var time = document.getElementById('time');
	var old_s = s;
	
	if(s>59)
	{
        m=Math.floor(s/60);
        s=s-m*60
    }
	if(m>59)
	{
		h=Math.floor(m/60);
		m=m-h*60
	}
	if(s<10)
	{
		s="0"+s
	}
	if(m<10)
	{
		m="0"+m
	}
	
	time.innerHTML = h+":"+m+":"+s;
	
	window.setTimeout('cntTime('+ (old_s+1) +');', 999);
}
</script>

<body onLoad="cntTime(<?php echo $sec; ?>);">
Zeit: <div id="time"></div>
</body>
</html>

Ich hoffe ich konnte dir helfen.

MfG
Fabsch
 
Hi,

Wie du oben lesen kannst habe ich doch schon die Lösung gefunden.
Ja es war vieleicht nicht sonderlich geschickt es einfach nur zu editiren
aber so wie es oben im Code steht gibt er die Serverzeit aus mit 2 sec
Abweichung aber das is ja net die welt.

danke
 
Hallo,

ja, stimmt, habe ich nur nicht so ganz erkennen können, ob du schon eine Lösung gefunden hast.

Vielleicht sollte ich in Zukunft besser lesen ;)

MfG
Fabsch
 
HI,

der Beitrag ist zwar schon etwas älter, doch ich habe noch einen Zusatz zum zweiten Script! Also um die zwei Sekunden Unterschied zu beheben, kann man einfach in dem Teil, der in den "body" kommt folgendes machen:

PHP:
onLoad="cntTime(<?php echo $sec+2; ?>);"

Der Unterschied ist, dass ich ein "+2" nach der Variable "$sec" gesetzt habe. Somit werden die zwei Sekunden Rücklauf wieder aufgeholt.

Gruß
Simon
 
Hallo,

wie kommst du denn genau auf 2 Sekunden?
Du nimmst an, dass immer genau 2 Sekunden zum Laden der gesamten Seite gebraucht wird.

Aber es kann doch auch länger oder kürzer dauern, oder?

Oder verstehe ich hier irgendwas nicht? :rolleyes:

MfG
Fabsch
 
stimmt... nachdem ich das script jetzt ne zeitlang laufen gelassen habe, geht die Uhrzeit auch zihmlich falsch.... also nicht so eine gute lösung :)
 
Zurück