Hallo,
ich habe ein kleines Community-Projekt, welches im localhost läuft.
Allerdings gibt es da für mich ein Logik Problem: die Zeitzonen.
Wenn sich ein Nutzer neu registriert, und ich die Zeit (mittels time()) in die Datenbank eintrage, passt das ja noch alles, da ich überall, egal wo man ist, die Serverzeit (Berlin) eingetragen wird. Da ist eine Zeitzone ja egal. Aber wenn ich dem Nutzer später sagen will, wann er sich genau registriert hat, wird es problematisch.
Die Registrierungszeit sollte ja schon immer von der aktuellen Zeitzone des Servers sein, das ich die Nutzer vergeichen kann.
Beispiel: ein Nutzer in China (+7) registriert sich, zur gleichen Zeit (+-2) wie ein Nutzer in Deutschland (+1).
So nun haben beide einen time() Code, von etwa: 1367244044
oder soetwas in der Art. So das ist nun die Berlin Zeit (da wo der Server steht)
Wenn ich ihm nun sagen will, wann genau das war, würde ja bei beiden etwas rauskommen wie: 29.04.2013 um 16:01 oder so..
Aber das kann ja nur für den Deutschen User stimmen, denn der Chinesische User hat sich ganz sicher nicht um 16:01 sondern eher um 23:01 registriert.
Die Frage ist nun, wie kann ich:
1. das mit den untersschiedlichen Zeitzonen lösen, aber trotzdem mit dem Vergleich time() immer auf der Zeitzone Berlin blieben?
2. Die Zeitzone des Nutzers herausfinden?
zu 1.:
Alle Nutzer sollten schon vergleichbar sein, das ich sagen kann:
Nutzer Deutschland: 1367244042
Nutzer China: 1367244044
zuerst registriert: Nutzer Deutschland
Ein weiteres Beispiel:
in meinem facebook-ähnlichem Newsfeed wird ein Beitrag angezeigt: (Deutscher Nutzer postet)
In der Datenbank: 1367244044
Umgewandelt in Datum: 29.04.2013 um 16:01
Aber wenn der Nutzer in China das 2-3 Minuten später sieht, wird es ja problematisch, denn es wurde zwar vor 2 Minuten gepostet (*), allerdings bei ihm nicht um 16:01, das wäre dann bereits ja schon 7 Stunden her.
zu *: mit einer Funktion wird bei mir auch soetwas angezeigt: vor 2 Minuten, vor 2 Monaten etc.
Da wäre es ja schon wieder irrelevant, da einfach der aktuelle time() genommen wird (Berlin Zeitzone) und mit der von dem Post verglichen wird. (Auch Berlin)
d.h. auch wenn dann vor 2 Minuten stünde, würde es (aus Sicht des Chinesen) nicht mit der Stunden anzeige passen.
Ich hoffe ihr versteht mein Anliegen, und es ist verständlich.
Gruß
ich habe ein kleines Community-Projekt, welches im localhost läuft.
Allerdings gibt es da für mich ein Logik Problem: die Zeitzonen.
Wenn sich ein Nutzer neu registriert, und ich die Zeit (mittels time()) in die Datenbank eintrage, passt das ja noch alles, da ich überall, egal wo man ist, die Serverzeit (Berlin) eingetragen wird. Da ist eine Zeitzone ja egal. Aber wenn ich dem Nutzer später sagen will, wann er sich genau registriert hat, wird es problematisch.
Die Registrierungszeit sollte ja schon immer von der aktuellen Zeitzone des Servers sein, das ich die Nutzer vergeichen kann.
Beispiel: ein Nutzer in China (+7) registriert sich, zur gleichen Zeit (+-2) wie ein Nutzer in Deutschland (+1).
So nun haben beide einen time() Code, von etwa: 1367244044
oder soetwas in der Art. So das ist nun die Berlin Zeit (da wo der Server steht)
Wenn ich ihm nun sagen will, wann genau das war, würde ja bei beiden etwas rauskommen wie: 29.04.2013 um 16:01 oder so..
Aber das kann ja nur für den Deutschen User stimmen, denn der Chinesische User hat sich ganz sicher nicht um 16:01 sondern eher um 23:01 registriert.
Die Frage ist nun, wie kann ich:
1. das mit den untersschiedlichen Zeitzonen lösen, aber trotzdem mit dem Vergleich time() immer auf der Zeitzone Berlin blieben?
2. Die Zeitzone des Nutzers herausfinden?
zu 1.:
Alle Nutzer sollten schon vergleichbar sein, das ich sagen kann:
Nutzer Deutschland: 1367244042
Nutzer China: 1367244044
zuerst registriert: Nutzer Deutschland
Ein weiteres Beispiel:
in meinem facebook-ähnlichem Newsfeed wird ein Beitrag angezeigt: (Deutscher Nutzer postet)
In der Datenbank: 1367244044
Umgewandelt in Datum: 29.04.2013 um 16:01
Aber wenn der Nutzer in China das 2-3 Minuten später sieht, wird es ja problematisch, denn es wurde zwar vor 2 Minuten gepostet (*), allerdings bei ihm nicht um 16:01, das wäre dann bereits ja schon 7 Stunden her.
zu *: mit einer Funktion wird bei mir auch soetwas angezeigt: vor 2 Minuten, vor 2 Monaten etc.
Da wäre es ja schon wieder irrelevant, da einfach der aktuelle time() genommen wird (Berlin Zeitzone) und mit der von dem Post verglichen wird. (Auch Berlin)
d.h. auch wenn dann vor 2 Minuten stünde, würde es (aus Sicht des Chinesen) nicht mit der Stunden anzeige passen.
Ich hoffe ihr versteht mein Anliegen, und es ist verständlich.
Gruß