date_default_timezone Frage

stimmen
0

Ich schrieb eine ziemlich lange Funktion, die die Unterschiede in den Zeitzonen in den USA in Bezug auf die Server-Zeitzone berechnen wird. Ich habe bemerkt, dass durch default_timezone_set mit (), dass ich die gleichen Daten zurück bekommen kann, dass meine Funktion berechnet. Ich habe nicht zu verwenden, um die default_timezone_set Funktion gewählt, weil ich fürchte, dass dies die Zeit auf globaler Ebene ändert und dass, wenn eine andere Anfrage woanders innerhalb meiner app auftritt, dass die falsche Zeit verwendet wird; das heißt, die Zeit, die zu diesem Zeitpunkt berechnet wird, um die default_timezone_set Funktion.

Kann jemand das für mich überprüfen? Kann ich ohne Sorgen die timezone_set Funktion nur über die Möglichkeit von Fehlzeiten in anderen Funktionen verwendet? Hoffe, das ist klar.

Veröffentlicht am 30/12/2009 um 03:46
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
1

Sie sollten einen Blick darauf werfen, wie PHP , was Zeitzone bestimmt , der in Abwesenheit zu verwenden date_default_timezone_set(). Es ist unter der beschriebenen date_default_timezone_get () Funktion.

Grundsätzlich, wenn Sie nicht verwenden date_default_timezone_set(), dann ist PHP höchstwahrscheinlich die Server - Zeitzone als die Standard - Zeitzone mit für alle Datumsfunktionen wie auch immer, es sei denn , Sie eine der anderen Einstellungen geschehen zu finden unter date_default_timezone_get().

Wenn Sie setzen gezielt die Zeitzone mit date_default_timezone_set(), dann machen Sie sicher , dass der Zeitzone , die Ihren Code verwenden, anstatt lassen die Server - Zeitzone für Sie entscheiden.

Wenn Sie die Server - Zeitzone verwenden mögen, dann ist es gute Praxis, einfach die Zeitzone auf die Server - Zeitzone eingestellt mit date_default_timezone_set(), und alle Unklarheiten beseitigt werden.

Also, es ist zu spät für die kurze Antwort, aber die kurze Antwort ja ist, sollten Sie in der Lage sein zu verwenden , date_default_timezone_set()sicher.

Beantwortet am 30/12/2009 um 03:53
quelle vom benutzer

stimmen
0

PHP hat bereits eine Funktion, um die Versetzungen zwischen Zeitzonen zu berechnen:

timezone_offset_get()

Unter dem PHP - Handbuch wird die Probe Anwendungsfall gezeigt. timezone_offset_get () . Hier ist ein Beispiel dafür , wie die Zeit zwischen zwei Zeitzonen - Offset zu berechnen.

$offset = get_timezone_offset('America/Los_Angeles','America/New_York'); //result is 10800 (3 hours)
$offset = get_timezone_offset('America/Los_Angeles'); //compares against default server timezone

Nachdem wir in Sekunden der Offset, können Sie, was Sie tun Berechnungen tun müssen.


die Standardzeitzonen in Bezug auf Einstellung gibt es zwei Möglichkeiten, um es zu tun.

  1. Stellen Sie php.ini die Standard-Zeitzone (die folgende Zeile in der Datei php.ini) einzustellen

    date.timezone = "Ihre / Zeitzone"

  2. Stellen Sie die Standardzeitzone zur Laufzeit (mit Hilfe des erwähnten date_default_timezone_set("Your/Timezone"))

Je nach Server-Setup. die php.ini chaning nehmen kann nicht Wirkung durch php.ini Vorrang. Es kann in dem Server andere php.ini irgendwo sein, den Vorrang als die nimmt Sie bearbeiten,

Beantwortet am 11/03/2014 um 02:14
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more