timestamp-Prinzip

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag von Chaze »

Anonymous hat geschrieben:Vielen Dank für keine Hilfe...
Brauchst ja nicht gleich stinkig zu werden :-?

Du speicherst nur den aktuellen Timestamp für den Post. Im Profil des Users ist dann die Zeitzone in Form von -12 bis +12 gespeichert.

Schreibt ein deutscher User in der Sommerzeit ein Posting dann ist die Zeit der Erstellung:
GMT aus Profil = +2
Zeit des Posts = Timstamp + (2 * 3600)

Schreibt ein deutscher User in der Winterzeit ein Posting dann ist die Zeit der Erstellung:
GMT aus Profil = +1
Zeit des Posts = Timstamp + (1 * 3600)
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Gast

Beitrag von Gast »

Ok, langsam wird's ;)

1. Welche Funktion ist die für die aktuelle GMT?
2. Woher weiß mein PHP-Script in welcher Zeitzone sicher der User befindet, d.h. welche Funktion brache ich dafür?
3. Woher weiß mein PHP-Script in welcher Zeitperiode sicher der User befindet (kausal), wenn er das Posting sendet (Winter-/Sommerzeit), d.h. welche Funktion brauche ich dafür?
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag von Chaze »

Die Zeitzone hat nix mit einer Funktion zu tun. Der User muß einmal angeben welche GMT für ihn gilt. Das Posting wird immer in aktueller Serverzeit abgespeichert. Alles andere wird berechnet.
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Gast

Beitrag von Gast »

Welche GMT ist Käse, weil GMT heißt Greenwich-...irgendwas...-Time. Gibt es keine Funktion die das ganze immer in GMT speichert, statt in der Zeit des Servers? Der Server könnte ja sonstwo stehen.
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag von Chaze »

Der Server hat GMT (0). Da der Timestamp = Anzahl der Sekunden seit 01.01.1970.
Du brauchst auf jeden Fall eine Referenzzeit! Und das ist die des Servers...
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Gast

Beitrag von Gast »

[quote=Chaze]Der Server hat GMT (0). Da der Timestamp = Anzahl der Sekunden seit 01.01.1970.
Du brauchst auf jeden Fall eine Referenzzeit! Und das ist die des Servers...[/quote]
Das muß man jetzt nicht verstanden haben, oder? Erklär' mir mal den 2. Satz (der keine ist).
Benutzeravatar
Chaze
Ehemaliges Teammitglied
Beiträge: 2035
Registriert: 31.01.2003 12:20
Wohnort: Hannover

Beitrag von Chaze »

Ist ganz einfach.
Der Timestamp macht nichts anderes als seit dem 01.01.1970 die Sekunden zu zählen.
Unabhängig von irgendwelchen Zeitzonen.
by[t]e,
Chaze
!!!--> Kein Support per PN oder Mail <--!!!
Gast

Beitrag von Gast »

Erzähl' mir doch mal was, was ich nicht weiß. Und ganz unabhängig von den Zeitzonen stimmt auch nicht, denn dieser Timestamp bezieht sich auch auf eine Zeitzone, nur immer dieselbe.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Du musst eben die beiden Zeiten miteinander verrechnen (so wie das beim phpBB auch gemacht wird). Beispiele:
Server=GMT+1, User=GMT+1 -> User Zeit = Server Zeit
Server=GMT+1, User=GMT+2 -> User Zeit = Server Zeit + 3600s
Server=GMT+2, User=GMT -> User Zeit = Server Zeit - 7200s

Beim phpBB funktioniert das nur deshalb nicht korrekt, weil die Sommerzeit nicht erkannt wird. Das kannst du z.B. so lösen daß du eine Option einmal für den Server und für jeden User hast, ob Sommerzeit verwendet wird. Dann ziehst du die Sommerzeit beim speichern immer ab: id(sommerzeit_option && sommer_monate) timestamp -= 3600 und beim anzeigen umgekehrt.
Antworten

Zurück zu „Coding & Technik“