Norbert: Time-Server

Hi,

habe ein Script gebaut, mit dem man verschiedene Time-Server nach der Uhrzeit fragen kann.
Siehe:  http://www.arachnion.ac:8080/get_time.php

Nun frage ich mich jedoch, warum bekomme ich von keinem Server, die in der RFC vorgesehene UTC, sondern immer meine Localtime.
Woher weiss der Server in Nevada, aus welcher Zeitzone die Anfrage kommt.
WAS sendet PHP bei fsockopen denn alles mit ???

PS:
Hinweise zur Systemzeit bitte an den Provider und nicht an mich senden, danke ... ;-)

Gruss und Dank

Norbert

  1. Halihallo Norbert

    Nun frage ich mich jedoch, warum bekomme ich von keinem Server, die in der RFC vorgesehene UTC, sondern immer meine Localtime.

    Tust du nicht, es scheint nur so...

    Woher weiss der Server in Nevada, aus welcher Zeitzone die Anfrage kommt.

    Gar nicht.

    WAS sendet PHP bei fsockopen denn alles mit ???

    Das, was du reinschreibst, nichts anderes.

    Das Ding ist (glaube ich) einfach:
    Du verwendest date() um die Zeit zu formatieren? - Dieses erwartet
    eine Timestamp, die UTC ist! - Jedoch wandelt date() es gleich in
    die localtime um und somit erhälst du natürlich immer die localtime,
    obgleich die Eingabe-Timestamp zu date() UTC ist.

    http://www.php.net/gmdate sollte die
    automatisch "Transformation" unterbinden und dir das Datum ausgeben,
    was der Server auch tatsächlich gesendet hat.

    Sieh dir mal die Timestamp-Werte verschiedener Server an. Sie sollten
    sich nur um jene Sekunden erhöhen, die du brauchst um den nächsten
    Server anzufragen, es wird also immer UTC zurückgegeben, egal in
    welcher Zeitzone (ist ja logisch: UTC!) sich der Server befindet.
    Die Transformation in *deine* Zeitzone geschieht duch date(), nicht
    durch den Server.

    Viele Grüsse

    Philipp

    --
    M$: Patches - don't.
    1. Hi Philipp,

      Das Ding ist (glaube ich) einfach:

      glauben darf jeder ... ;-)

      Hier sind die Timestamps einiger Server:
      1085063118 - ntps1-1.uni-erlangen.de - GER, Erlangen
      1085063118 - ntps1-0.cs.tu-berlin.de - GER, Berlin
      1085063118 - swisstime.ethz.ch - SUI, Zurich
      1085063118 - tock.usno.navy.mil - USA, Washington DC
      1085063119 - tick.usno.navy.mil - USA, Washington DC
      1085063120 - mizbeaver.udel.edu - USA, DE, Newark
      1085063120 - ntps1-0.uni-erlangen.de - GER, Erlangen
      1085063120 - ntps1-2.uni-erlangen.de - GER, Erlangen
      1085063121 - time-A.timefreq.bldrdoc.gov - USA, CO, Boulder
      1085063121 - time.nist.gov - USA, CO, Boulder
      1085063121 - chime1.surfnet.nl - NL, Utrecht
      1085063121 - clock.psu.edu - USA, PA, Penn
      1085063122 - clock-1.cs.cmu.edu - USA, PA, Pittsburgh
      1085063122 - clock-2.cs.cmu.edu - USA, PA, Pittsburgh
      1085063123 - cuckoo.nevada.edu - USA, NV, Las Vegas
      1085063123 - ntp-1.ece.cmu.edu - USA, PA, Pittsburgh
      1085063123 - ntp-2.ece.cmu.edu - USA, PA, Pittsburgh
      1085063124 - ntp0.cornell.edu - USA, NY, Ithaca
      1085063124 - rolex.peachnet.edu - USA, GA, Kennesaw
      1085063124 - salmon.maths.tcd.ie - IRE, Dublin
      1085063124 - sundial.columbia.edu - USA, NY, New York
      1085063125 - timex.peachnet.edu - USA, GA, Kennesaw

      Irgendwie passt das nicht zu Deiner Theorie - leider ...

      Gruss und Dank

      Norbert

      1. Halihallo Norbert

        Das Ding ist (glaube ich) einfach:
        glauben darf jeder ... ;-)

        ... nur nicht an jeden und alles, sondern in diesem Thread an
        mich! :-)

        Hier sind die Timestamps einiger Server:

        [...]

        Irgendwie passt das nicht zu Deiner Theorie - leider ...

        Dann hast du meine Theorie nicht verstanden, deine Beispiele
        untermauern meine Theorie sogar sehr gut.

        Alle bringen dieselbe Zeit (ggf. einige Sekunden unterschied, was ja
        durchaus akzeptabel ist), die UTC-Zeit! - Dein date() transformiert
        sie nur in die Zeitzone deines Servers (bei GMT+1 wird zur Timestamp
        also "3600 Sekunden dazugezählt" und das dann ausgegeben)...

        Hast du date() schon einmal durch gmdate() ersetzt [1]? - Tu das doch
        einfach, auch wenn du mir nicht glaubst, vielleicht tust du es dann
        nachher :-)

        [1] Oder umgekehrt, aber das wäre dann IMHO ein Bug in PHP.

        Viele Grüsse

        Philipp

        --
        M$: Patches - don't.