karl: + (ASP/PHP) Zeitzone eines Nutzers ermitteln

Beitrag lesen

Hallo Gernot

Ich schlage folgenden Lösungsansatz vor.
Eine serverseitige Zeit ist dabei gar nicht erforderlich.
Im gegenteil, sie würde, wenn der Client eine falsch eingestellte Uhr hat, Fehler verursachen.
Da dieser Ansatz nur auf Clientzeiten basiert müsste er auch stimmen wenn die Uhr des Client nicht ganz richtig eingestellt ist.

ermittle client-utc (getUTCHours() und getUTCMinutes()
ermittle client-utc-offset (getTimezoneOffset())
ermittle client-zeit (getTime())

Zur Winnterzeit müsste gelten:
client-zeit = client-utc + client-utc-offset

Zur Sommerzeit stimmt diese Formel nicht und daraus
berechne den sommerzeit bedingten offset des client:
client-sommerzeit-offset = client-zeit - (client-utc + client-utc-offset)

Aus diesem client-sommerzeit-offset kannst du nun ermittel ob er Sommerzeit hat:
client-sommerzeit-offset ca. 0 bedeutet Winterzeit
client-sommerzeit-offset ca. 60 min bedeutet Sommerzeit
......
......

Das ist nur der Denkansatz. Die Umsetzung insbesonder im Zeitraum um Mitternacht ist sicher etwas aufwendiger.

l.g. karl