timezone_identifiers_list ist eine integrierte PHP-Funktion, mit der alle verfügbaren Zeitzonenkennungen erhalten werden. Die Verwendung ist sehr einfach:
<?php
$timezones = timezone_identifiers_list();
foreach ($timezones as $timezone) {
echo $timezone . PHP_EOL;
}
?>
Dieser Code gibt alle Zeitzonennamen, die von PHP unterstützt werden, wie Asien/Shanghai , Europa/London , Amerika/New_york usw. aus.
Die DateTime -Klasse kann ein Datums- und Zeitobjekt erstellen. Wenn die Zeitzone nicht angegeben ist, wird die Server -Standardzeitzone standardmäßig verwendet. Wir können auch ein Zeitzonenobjekt zur Erstellungszeit übergeben.
<?php
$date = new DateTime('2025-05-31 15:00:00', new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:s T') . PHP_EOL;
?>
Dieser Code wird ausgegeben: 2025-05-31 15:00:00 UTC .
Wenn wir die oben genannte Zeit in Shanghai in China konvertieren möchten, können wir sie über die SetTimeZone -Methode implementieren:
<?php
$date->setTimezone(new DateTimeZone('Asia/Shanghai'));
echo $date->format('Y-m-d H:i:s T') . PHP_EOL;
?>
Das Ausgabeergebnis wird: 2025-05-31 23:00:00 CST , dh die entsprechende Zeit in Peking.
Manchmal möchten wir, dass der Benutzer einen aus der Liste aller Zeitzonen auswählt und das Programm dann die Zeit entsprechend der Auswahl anpasst. Der Beispielcode lautet wie folgt:
<?php
// Holen Sie sich alle Zeitzonen
$timezones = timezone_identifiers_list();
// Angenommen, der von Benutzer ausgewählte Zeitzone ist 'Europe/London'
$userSelectedTimezone = 'Europe/London';
// Erstellen Sie zuerst eineUTCZeitDateTimeObjekt
$date = new DateTime('2025-05-31 15:00:00', new DateTimeZone('UTC'));
// Stellen Sie sicher, dass der von Benutzer ausgewählte Zeitzone gültig ist
if (in_array($userSelectedTimezone, $timezones)) {
$date->setTimezone(new DateTimeZone($userSelectedTimezone));
echo "Die vom Benutzer ausgewählte Zeit ist:" . $date->format('Y-m-d H:i:s T') . PHP_EOL;
} else {
echo "Ungültige Zeitzonenauswahl!" . PHP_EOL;
}
?>
Wenn die vom Benutzer eingegebene Zeitzone ungültig ist, kann ein Fehler aufgefordert werden. Wenn es gültig ist, wird die angepasste Zeit korrekt angezeigt.
Hier ist ein vollständiges Beispiel, das zeigt, wie Sie eine Zeitzonenliste erhalten und die Zeit nach der Benutzerauswahl konvertieren:
<?php
// Holen Sie sich alle Zeitzonen
$timezones = timezone_identifiers_list();
// Simulieren Sie die Zeitzone der Benutzerauswahl(Kann durch Formulareingang ersetzt werden)
$userSelectedTimezone = 'gitbox.net/Europe/London';
// Entfernen Sie den Domain -Namensteil,Nur Zeitzonenkennungen bleiben erhalten
$parsedTimezone = str_replace('gitbox.net/', '', $userSelectedTimezone);
// 创建ZeitObjekt,StandardUTCZeit
$date = new DateTime('2025-05-31 15:00:00', new DateTimeZone('UTC'));
if (in_array($parsedTimezone, $timezones)) {
$date->setTimezone(new DateTimeZone($parsedTimezone));
echo "Die vom Benutzer ausgewählte Zeit ist:" . $date->format('Y-m-d H:i:s T') . PHP_EOL;
} else {
echo "Ungültige Zeitzonenauswahl!" . PHP_EOL;
}
?>
In den obigen Schritten können wir die TimeZone_identifiers_List und DateTime :: SetTimeZone -Methoden flexibel kombinieren, um die Zeit- und Uhrzeit dynamisch nach Anforderungen zu ändern.