Was ist die Zeitzone des Cookies auf der Client-Seite gespeichert?

8

Ich muss einen Cookie setzen, der nach 1 Stunde mit der PHP setcookie Funktion abläuft. Zeitzone auf meinem Server ist auf GMT eingestellt. Wie sollte ich das Cookie-Ablaufdatum festlegen, damit es über die Zeitzonen eines anderen Browsers des Browsers funktioniert?

    
Karol 19.04.2012, 12:58
quelle

4 Antworten

7

In der Nähe, wie ich sagen kann, sollte es egal sein, was die Client-Zeit ist. PHP legt die Ablaufzeit basierend auf dem Unix-Timecode fest. Jede Abweichung in dieser Zeit sollte auf dem Server liegen.

Hier ist der Auszug aus dem PHP-Handbuch für setcookie ():

  

ablaufen:

     

Die Zeit, in der der Cookie abläuft. Dies ist ein Unix-Zeitstempel, also in der Anzahl der Sekunden seit der Epoche. Mit anderen Worten, Sie werden höchstwahrscheinlich   Stellen Sie dies mit der Funktion time () plus der Anzahl der Sekunden davor ein   Sie möchten, dass es abläuft. Oder Sie könnten mktime () verwenden. Zeit () + 60 * 60 * 24 * 30   wird das Cookie in 30 Tagen ablaufen lassen. Wenn auf 0 gesetzt oder weggelassen, die   Der Cookie läuft am Ende der Sitzung ab (wenn der Browser   schließt).

    
RockyFord 19.04.2012, 13:07
quelle
5

Die PHP-Funktion setcookie () akzeptiert eine ganze Zahl, die einem Unix-Zeitstempel entspricht. Wenn Ihr Cookie eine Stunde Zeit zum Leben haben soll, können Sie einfach time () + 3600 für diesen Wert verwenden. PHP erstellt dann ein Cookie mit einer Ablaufzeit wie "abläuft = Fr, 3 Aug 2001 20:47:11 UTC". Es ist in UTC (GMT), sodass Sie sich keine Gedanken über die Zeitzone des Client-Browsers machen müssen.

    
kDjakman 19.04.2012 15:59
quelle
0

Sie könnten versuchen mit getTimeZone und setTimeZone Sehen Sie sich hier

an

Auch strtotime scheint in Ordnung zu sein, um das korrekte Format von datetime zu erhalten, dann könnten Sie gmdate um es zu konvertieren

    
DonCallisto 19.04.2012 13:02
quelle
0

Nehmen wir an, Sie verwenden Set-Cookie.

Ich mag mich irren, aber ich denke:

Sie geben den expire-Parameter als Unix-Zeitstempel an und berechnen den Zeitstempel als "in einer Stunde", sodass der Cookie in einer Stunde ablaufen soll. Daher ist die Zeitzone nicht wichtig, da der Unix-Zeitstempel eindeutig ist.

Die Aufgabe des Browsers besteht dann darin, den Unix-Zeitstempel in ein Datum zu übersetzen, das auf den Browsereinstellungen (Gebietsschema, Sprache usw.) basiert.

    
ab_dev86 19.04.2012 13:11
quelle

Tags und Links