<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// In diesem Abschnitt des Codebeispiels wird angezeigt, wie Sie Informationen über alle Zeitzonen erhalten,Und setzen Sie die Standardzeitzone。</span></span><span>
</span><span><span class="hljs-comment">// Hat nichts mit dem Haupttext des Artikels zu tun,Nur für Demonstrationszwecke。</span></span><span>
</span><span><span class="hljs-variable">$timezones</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>();
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$timezones</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$abbr</span></span><span> => </span><span><span class="hljs-variable">$zones</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Abkürzung: <span class="hljs-subst">$abbr</span></span></span><span>\n";
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$zones</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$zone</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">" - ZeitzoneID: "</span></span><span> . </span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'timezone_id'</span></span><span>] . </span><span><span class="hljs-string">", Verschobene Sekunden: "</span></span><span> . </span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'offset'</span></span><span>] . </span><span><span class="hljs-string">"\n"</span></span><span>;
}
}
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"当前默认Zeitzone: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date_default_timezone_get</span></span><span>() . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
---
</span><span><span class="hljs-comment"># Wie zutimezone_abbreviations_listFunktionen unddate_default_timezone_set函数配合使用实现Zeitzone管理?</span></span><span>
existierenPHPMitte,Zeitzone管理对于处理时间Und日期非常关键,特别是existieren跨Zeitzone应用场景Mitte。PHPEs werden zwei wichtige Funktionen bereitgestellt——`</span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>()` Und `</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>()`,Sie können zusammen verwendet werden,实现灵活且准确的Zeitzone管理。
</span><span><span class="hljs-comment">## eins、timezone_abbreviations_listFunktion Einführung</span></span><span>
`</span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>()` 函数返回eins个数组,列出了所有ZeitzoneAbkürzung及其对应的详细信息。Die Struktur des Arrays ist grob wie folgt:
```php
[
</span><span><span class="hljs-string">"abbr"</span></span><span> => [
[
</span><span><span class="hljs-string">"offset"</span></span><span> => Verschobene Sekunden,
</span><span><span class="hljs-string">"dst"</span></span><span> => Ob es die Tageslichtsparzeit ist(Boolescher Wert),
</span><span><span class="hljs-string">"timezone_id"</span></span><span> => Zeitzone标识符字符串
],
...
],
...
]
</span></span>
Diese Funktion ist sehr nützlich, da Entwickler die Standard -Abkürzung, den Offset und die entsprechende Zeitzonen -ID der Zeitzone erhalten können, die die nachfolgende Zeitzonenschaltung und -anzeige erleichtert.
DATE_DEFAULT_TIMEZONE_SET (String $ timeZoneid) wird verwendet, um die Standardzeitzone der PHP -Ausführungsumgebung festzulegen. Nach der Einstellung verwenden alle zeitlichen Funktionen wie Datum () , time () usw. diese Standardzeitzone, um die Zeit zu verarbeiten.
Beispiel:
<span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-string">'Asia/Shanghai'</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-comment">// Exportieren Sie die Zeit der Shanghai</span></span><span>
</span></span>
Angenommen, Sie haben eine Anforderung, und der Benutzer übergibt eine Zeitzone Abkürzung (z. B. "CST"), und Sie möchten gemäß dieser Abkürzung automatisch zur entsprechenden Zeitzone wechseln, um die Zeit einheitlich zu berechnen und anzuzeigen.
Holen Sie sich die Daten, die All TimeZone -Abkürzungen entsprechen, über TimeZone_abbreviations_List () .
Suchen Sie eine Liste von Zeitzonen, die der Zielabkürzung entsprechen (eine Abkürzung kann mehreren Zeitzonen entsprechen).
Wählen Sie die entsprechende Zeitzonenkennung aus (z. B. ist der Offset am besten für die Bedürfnisse des Benutzers oder die Standardeinstellung zuerst geeignet).
Verwenden Sie DATE_DEFAULT_TIMEZONE_SET () , um die PHP -Zeitzone auf diese Zeitzone festzulegen.
Holen Sie sich und zeigen Sie die Zeit an.
Beispielcode:
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">setTimezoneByAbbr</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$abbr</span></span></span><span>) {
</span><span><span class="hljs-variable">$abbr</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strtolower</span></span><span>(</span><span><span class="hljs-variable">$abbr</span></span><span>);
</span><span><span class="hljs-variable">$timezones</span></span><span> = </span><span><span class="hljs-title function_ invoke__">timezone_abbreviations_list</span></span><span>();
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-keyword">isset</span></span><span>(</span><span><span class="hljs-variable">$timezones</span></span><span>[</span><span><span class="hljs-variable">$abbr</span></span><span>])) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">Exception</span></span><span>(</span><span><span class="hljs-string">"ZeitzoneAbkürzung '<span class="hljs-subst">{$abbr}</span></span></span><span>' 不存existieren");
}
</span><span><span class="hljs-comment">// 这里默认选第eins个Zeitzone,Bei Bedarf,Kann basierend auf Offset oder anderen Bedingungen filtriert werden</span></span><span>
</span><span><span class="hljs-variable">$zone</span></span><span> = </span><span><span class="hljs-variable">$timezones</span></span><span>[</span><span><span class="hljs-variable">$abbr</span></span><span>][</span><span><span class="hljs-number">0</span></span><span>];
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-keyword">empty</span></span><span>(</span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'timezone_id'</span></span><span>])) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">Exception</span></span><span>(</span><span><span class="hljs-string">"ZeitzoneIDungültig"</span></span><span>);
}
</span><span><span class="hljs-title function_ invoke__">date_default_timezone_set</span></span><span>(</span><span><span class="hljs-variable">$zone</span></span><span>[</span><span><span class="hljs-string">'timezone_id'</span></span><span>]);
}
</span><span><span class="hljs-comment">// Beispiel:Wechseln zuCSTZeitzone</span></span><span>
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-title function_ invoke__">setTimezoneByAbbr</span></span><span>(</span><span><span class="hljs-string">'CST'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Aktuelle Zeit:"</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-string">",Zeitzone:"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">date_default_timezone_get</span></span><span>();
} </span><span><span class="hljs-keyword">catch</span></span><span> (</span><span><span class="hljs-built_in">Exception</span></span><span> </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Fehler:"</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>
Einige Abkürzungen entsprechen mehreren Zeitzonen (z. B. CST können chinesische Standardzeit, zentralamerikanische Zeit usw.). Es ist erforderlich, die entsprechende Zeitzonen -ID gemäß dem spezifischen Szenario auszuwählen.
Es wird empfohlen, Zeitzonenkennungen (wie Asien/Shanghai, Amerika/Chicago) anstelle von Abkürzungen direkt zu verwenden, um Unklarheiten zu vermeiden.
Die Funktion kann so erweitert werden, dass sie dynamisch mit der am besten geeigneten Zeitzone anhand der Informationen des Landes oder der Region des Benutzers übereinstimmt.
TIMEZONE_ABBREVIATIONS_LIST () und DATE_DEFAULT_TIMEZONE_SET () sind die Kernwerkzeuge für die Zeitzonenverarbeitung in PHP. Ersteres erhält eine detaillierte Abkürzung der Zeitzone und die entsprechenden Kennungen, und letzteres legt flexibel die Standardzeitzone fest, die ein effizientes und genaues Zeitzonenmanagement erreichen kann, um die Anforderungen von Zonenanwendungen mit mehreren Zeiten gerecht zu werden.
<span></span>