Die Standardzeitzoneneinstellung von PHP ist normalerweise UTC. Diese Zeitzone unterstützt die globale Zeitstandardisierung, aber für viele Anwendungen, insbesondere für Benutzer in bestimmten Regionen, die UTC als Standardzeitzone verwenden, ist möglicherweise nicht angemessen. Wenn Sie beispielsweise eine Anwendung in China (UTC+8) entwickeln, der Server jedoch auf UTC festgelegt ist, wird in der Anzeigezeit ein Fehler aufgetreten.
Normalerweise verwendet PHP die Funktion Date (), um die Ausgabezeit zu erhalten. Wenn die Zeitzone falsch eingestellt ist, ist die angezeigte Zeit nicht wie erwartet.
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span></span>Wenn die Zeitzone nicht korrekt eingestellt ist, ist diese Ausgabe möglicherweise nicht wie erwartet.
Ini_Set () ist eine sehr praktische Funktion in PHP, die eine dynamische Modifikation von PHP -Konfigurationselementen ermöglicht. Wenn das Programm ausgeführt wird, können Sie ini_set () die Zeitzone festlegen, damit PHP die Zeit gemäß der angegebenen Zeitzone ausgibt.
<span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'date.timezone'</span></span><span>, </span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span></span>Datum.TimeZone ist eine Anweisung in einer PHP -Konfigurationsdatei, die eine Zeitzone definiert. Nach der Änderung der Zeitzone über Ini_Set () zeigt PHP die Zeit gemäß der angegebenen Zeitzone im aktuellen Skript an.
Asien/Shanghai (China Standard Time)
Amerika/New_york (New York Time Zone, USA)
Europa/London (Londoner Zeit)
Asien/Tokio (Tokyo -Zeit)
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Setzen Sie die Zeitzone nach Shanghai</span></span><span>
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'date.timezone'</span></span><span>, </span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-comment">// Ausgabestromzeit</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Der obige Code zeigt die aktuelle Zeit gemäß der Shanghai -Zeitzone an.
Sie können die Funktion date_default_timezone_get () verwenden, um die aktuelle PHP -Konfigurationszeitzone anzuzeigen.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">date_default_timezone_get</span></span><span>();
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Wenn die PHP -Konfiguration die Zeitzone nicht explizit festlegt, ist die standardmäßige Zeitzone normalerweise UTC.
Manchmal scheint die Verwendung von Ini_set () , um die Zeitzone festzulegen, keinen Effekt zu haben, möglicherweise weil die Standardzeitzone in php.ini festgelegt wurde und in einigen Umgebungen nicht überschrieben werden kann. Um sicherzustellen, dass die Zeitzoneneinstellungen wirksam werden, können Sie die folgenden Methoden ausprobieren:
Stellen Sie sicher, dass das Datum.TimeZone nicht in php.ini festgelegt ist.
Überprüfen Sie das PHP -Fehlerprotokoll, um festzustellen, ob sich verwandte Warnungen oder Fehlermeldungen befinden.
Wenn Ihre Anwendung Benutzer mit mehreren Zeitzonen umfasst, können Sie die DateTime -Klasse und die DateTimezone -Klasse verwenden, um die Zeit in verschiedenen Zeitzonen zu verarbeiten. Dies ist flexibler als einfach die Funktion Date () .
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Erstellen a DateTime Objekt</span></span><span>
</span><span><span class="hljs-variable">$date</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTime</span></span><span>(</span><span><span class="hljs-string">'now'</span></span><span>, </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">DateTimeZone</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>));
</span><span><span class="hljs-comment">// Exportieren Sie die Zeit der Shanghai</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$date</span></span><span>-></span><span><span class="hljs-title function_ invoke__">format</span></span><span>(</span><span><span class="hljs-string">'Y-m-d H:i:s'</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>Das Einstellen der richtigen Zeitzone ist unerlässlich, um sicherzustellen, dass PHP -Programme eine genaue Zeit aufweisen. Mit der Funktion ini_set () können Sie die Zeitzone leicht zur Laufzeit festlegen. Insbesondere bei den Benutzern der Kreuzzeitzonen kann das Festlegen der Zeitzone vernünftigerweise Zeitfehler vermeiden und sicherstellen, dass die Zeit, die die Benutzer sehen, immer korrekt ist.
Der Betrieb der Zeitzone mit Ini_Set () ist sehr einfach, aber Sie müssen auf andere Einstellungen in der PHP -Konfiguration achten, um sicherzustellen, dass die Zeitzoneneinstellungen nicht überschrieben sind. Wenn in Ihrer Anwendung mehrere Zeitzonen behandelt werden, sollten Sie die DateTime -Klasse verwenden, um die Zeit flexibler zu verarbeiten.