Uhrzeit nach Atomuhr stellen

rootssw

Erfahrenes Mitglied
Hallo!

Mir fällt kein anderes Forum dazu ein und da ich das Ganze sowieso mittels PHP realisieren würde, stelle ich die Frage in diesem Forum (bitte verschieben, wenn's ein besseres Forum gibt).

Nun meine Frage:
Kennt jemand einen Link (oder sonstwas), dessen Ausgabe in PHP geparst werden kann, von dem man die aktuelle Zeit von einer Atomuhr bekommt?
Denn die Zeit auf dem Server ist doch ziemlich ungenau (und leider nicht konstant, sonst könnte ich ja die Differenz berechnen).
 
Rein theoretisch müsstest du dir mal das NTP Protokoll anschauen.
Im RFC ( wenn es da dokumentiert ist ) müsste doch bestimmt hinterlegt sein, wie du die Zeit herausbekommen kannst :)
 
@ Sanic:
Danke für den Tipp!
Das hab' ich jetzt auch gemacht - dass ich da nicht früher dran gedacht hab'!:rolleyes:

Naja, wen's interessiert, ich hab' mal auf die Schnelle eine kleine Funktion gebastelt (ist nicht gerade optimiert - erstmal nur nach dem Gedanken "Hauptsache, es funktioniert!" umgesetzt ;) ), die die Ausgabe eines Timeservers in ein Unix-Timestamp umwandelt.

Code:

PHP:
<?php
function NTP2TS($ts, $s)
{
	$fp = fsockopen($ts, $s, $err, $errstr, 2);

	if ($fp)
	{
		fputs($fp, "\n");
		while (!feof($fp))
		{
		$t = fread($fp, 49);
		}
		fclose($fp);
	}
	else $return -1;

	$t = explode(' ',$t);

	if (!is_array($t) || sizeof($t) != 5) return -2;

	$Months = array("JAN"=>1,"FEB"=>2,"MAR"=>3,"APR"=>4,"MAY"=>5,"JUN"=>6,"JUL"=>7,"AUG"=>8,"SEP"=>9,"OCT"=>10,"NOV"=>11,"DEC"=>12);

	$Time = array('month' => $Months[strtoupper($t[1])], 'day' => $t[2], 'year' => $t[4]);

	$t = explode(":", $t[3]);

	if (!is_array($t) || sizeof($t) != 3) return -3;

	$Time['hour'] = $t[0];
	$Time['minute'] = $t[1];
	$Time['second'] = $t[2];

	$return = mktime($Time['hour'],$Time['minute'],$Time['second'],$Time['month'],$Time['day'],$Time['year']);

	if ($Time['day'] != date("j", $return)) return -4;

	return($return);
}

echo NTP2TS('ntps1-1.cs.tu-berlin.de', 13);
?>
 
Ich musste grad feststellen, dass nicht alle NTPs die gleiche Ausgabe benutzen.
Ich werd' das Script später ändern, damit das berücksichtig wird.
 
Also, bitte! :rolleyes: ;)
So ganz Newbie bin ich ja nun auch nicht!
Und irgendwann wär ich da bestimmt auch drauf gekommen!:p
 
Original geschrieben von rootssw
Also, bitte! :rolleyes: ;)
So ganz Newbie bin ich ja nun auch nicht!
Und irgendwann wär ich da bestimmt auch drauf gekommen!:p
Es gibt viele, die ca. 10 Minuten später gefragt hätten:
Öhm, was ist denn ein Protokoll ?
:)
 
Zurück