ist es möglich, sich die atomzeit per php anzeigen zu lassen? per "webseiten-anzapfing" oder ähnlichem?
und wie sieht das mit "meiner" uhrzeit aus? nicht der lokalen; ist ja dann die des servers...
hab mir schon nen wolf gesucht....
gruß, SoulCut
ist es möglich, sich die atomzeit per php anzeigen zu lassen? per "webseiten-anzapfing" oder ähnlichem?
und wie sieht das mit "meiner" uhrzeit aus? nicht der lokalen; ist ja dann die des servers...
hab mir schon nen wolf gesucht....
gruß, SoulCut
Zitatist es möglich, sich die atomzeit per php anzeigen zu lassen? per "webseiten-anzapfing" oder ähnlichem?
Das kann eigentlich gar nicht so schwer sein. Immerhin gibt es extra für solche Fälle ein "Network Time Protocol" (NTP). Damit kann man dann die Zeit von einem Zeitserver, der wiederum mit einer Atomuhr verbunden ist, abfragen.
Ich werd mich mal kurz hinsetzen und schaun, wie sich das implementieren lässt.
Zitatund wie sieht das mit "meiner" uhrzeit aus? nicht der lokalen; ist ja dann die des servers...
Wie meinst du das? Dass auch die richtige Zeitzone angezeigt wird? Das hängt dann ganz vom jeweiligen Zeitserver ab, von dem du dir die Daten holst. Oder meinst du was anderes?
Regards,
reima
zu dem ntp hab ich nur ein pearl-script gefunden....wusste dann nicht weiter...
und vielen dank, mach dir aber keine großen mühen! ein paar tipps reichen auch
zu "meiner" uhrzeit:
wenn ich die normalen date-funktionen von php benutze, bekomme ich immer nur die uhrzeit des webservers zurückgeliefert...ist ja auch richtig so. aber ich hätte halt gerne noch die uhrzeit angezeigt, die ich auf meinem pc habe...
ist aber alles nur ein bisschen spielerei, nichts wichtiges. hat mich aber genervt
gruß, SoulCut
So, nach endlosen Recherchen (tausend Seiten mit Abhandlungen über die serverseitige Implementierung von NTP, aber nur ein paar wenige über Clients :(), herumärgern mit UDP und feof(), und zum Schluss jetzt auch noch mit den internen Datentypen von PHP, hab ich's endlich mal ein erstes Ergebnis vorzuweisen:
// UDP-Verbindung zum Zeitserver vorbereiten
$sock = fsockopen(\"udp://ptbtime2.ptb.de\", 123, &$errno, &$error);
// Error checking
if (!$sock) {
echo \"Error #\".$errno.\" :\".$error;
exit();
}
// Request vorbereiten
$request = chr(11).str_repeat(chr(0), 47);
// Abschicken
fwrite($sock, $request);
// Antwort einlesen
for ($x=0; $x<48; $x++) {
$answer .= fgetc($sock);
}
// Socket schließen
fclose($sock);
// In integer umwandeln (hier muss man allerdings auf einen 64-bit float zurückgreifen, da es bei php nur unsigned 32-bit ints gibt :()
$time = (float)
(ord($answer[40])*16777216 +
ord($answer[41])*65536 +
ord($answer[42])*256 +
ord($answer[43]));
// Vom NTP-Format in's Unix-Format konvertieren
$time -= 2208988800;
// Ausgabe
echo \"<b>\".date(\"d.m.Y H:i:s\", $time).\"</b>\";
Alles anzeigen
Bah. Hat lang gedauert, aber ich hab's. Ehrgeiz muss man halt haben :]
Wegen der lokalen Uhrzeit: Da musst du auf JavaScript zurückgreifen. Hab aber jetzt momentan nicht den Nerv, da noch was zusammenzuklopfen
Nacht...
reima
edit: Wenn man die Kommentare im PHP-Code liest, kriegt man Augenkrebs...
Hi!
Hier mal ein kleines Script zum anzeigen der lokalen Zeit unter JavaScript:
<script language=\"javascript\">
function LoadClock()
{
Zeit = new Date();
std = Zeit.getHours();
min = Zeit.getMinutes();
sek = Zeit.getSeconds();
tag = Zeit.getDate();
mon = Zeit.getMonth() + 1;
jah = Zeit.getYear();
if (std < 10) std = '0' + std
if (min < 10) min = '0' + min
if (sek < 10) sek = '0' + sek
if (tag < 10) tag = '0' + tag
if (mon < 10) mon = '0' + mon
Zeit = tag + '.' + mon + '.' + jah + ' - ' + std + ':' + min + ':' + sek + ' ';
document.frmClock.Clock.value= Zeit
setTimeout(\"LoadClock()\",1000);
}
</script>
Alles anzeigen
Wenn Du in deiner HTML-Seite jetzt noch ein Formular und eine Textbox einbaust, dann hast du eine Uhr, die sich jede Sekunde von selbst aktuallisiert.
mein gott, vielen dank!!
ist wohl doch ein ganz schöner krampf....
das dauert erst mal ein wenig, bis ich da durchgestiegen bin. werds montag gleich mal ausprobieren
THX
Das ganze geht auch unter ASP
zu sehen unter:
http://cmonline.dyndns.org/atom.asp
Den Quellcode gibts hier:
http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=7518&lngWId=4
mist....
unsere firewall sperrt wohl den udp-port.....
ZitatError #0 :
das wird ausgegeben...
und wenn ich dies hier richtig deute
Zitat// UDP-Verbindung zum Zeitserver vorbereiten
$sock = fsockopen("udp://ptbtime2.ptb.de", 123, &$errno, &$error);// Error checking
if (!$sock) {
echo "Error #".$errno." :".$error;
exit();
}
wird das wohl auch so sein, ne?
gruß, SoulCut