Aktueller Standort: Startseite> Neueste Artikel> So setzen Sie verschiedene Zeitzonen, um die richtige Sonnenuntergangszeit zu erhalten

So setzen Sie verschiedene Zeitzonen, um die richtige Sonnenuntergangszeit zu erhalten

M66 2025-05-17

Die Zeitzone-Einstellung ist ein entscheidender Faktor bei der Entwicklung von PHP-Anwendungen, die zeitbezogene Merkmale von Sonnenuntergang verwenden. Da die Sonnenuntergangszeiten in verschiedenen Zeitzonen unterschiedlich sind, müssen bei genauen Sonnenuntergangszeiten sichergestellt werden, dass die Zeitzone korrekt eingestellt ist. In diesem Artikel wird angezeigt, wie Sie verschiedene Zeitzonen in PHP festlegen und die genaue Sonnenuntergangszeit erhalten. Wir werden dies durch PHP -Code in Kombination mit externen APIs erreichen.

1. Stellen Sie die Zeitzone fest

Mit PHPs DATE_DEFAULT_TIMEZONE_SET () -Funktion können wir die Standardzeitzone festlegen. Standardmäßig verwendet PHP die Zeitzoneneinstellungen des Systems, können sie jedoch mit dieser Funktion überschreiben. Der folgende Code legt beispielsweise die Zeitzone in New York Zeit fest:

 <?php
date_default_timezone_set('America/New_York');
echo 'Die aktuelle Zeit ist:' . date('Y-m-d H:i:s');
?>

Gemeinsame Zeitzonenkennungen sind:

  • Asien/Shanghai (Shanghai -Zeit)

  • Europa/London (Londoner Zeit)

  • Amerika/New_york (New York Zeit)

Die gesamte Zeitzonenliste finden Sie in der Liste der PHP -Zeitzonen .

2. Erhalten Sie die genaue Sonnenuntergangszeit

Um die genaue Sonnenuntergangszeit zu erhalten, müssen wir normalerweise einen API-Dienst von Drittanbietern anrufen. Eine häufig verwendete API ist die API von Sonnenuntergang und Sonnenaufgangszeiten . Durch diese API können wir den Sonnenuntergangszeit eines bestimmten Ortes den Breitengrad- und Längengrad- und Zeitzoneninformationen übergeben.

Hier ist ein Beispiel für die Verwendung dieser API, um die Sonnenuntergangszeit an einem bestimmten Ort zu erhalten:

 <?php
// Legen Sie die Zeitzone fest
date_default_timezone_set('Asia/Shanghai');

// Setzen Sie Breitengrad und Längengrad
$latitude = 31.2304;  // Shanghais Breite
$longitude = 121.4737; // Länge von Shanghai

// verwendenAPIHolen Sie sich die Sonnenuntergangszeit
$api_url = "https://api.sunset-sunrise.org/json?lat={$latitude}&lng={$longitude}&formatted=0";
$response = file_get_contents($api_url);
$data = json_decode($response, true);

// Analysieren Sie die Sonnenuntergangszeit
$sunset_time = $data['results']['sunset'];
echo 'Die Sonnenuntergangszeit in Shanghai ist:' . $sunset_time;
?>

In diesem Code verwenden wir die Funktion "File_Get_Contents () , um die API -Anforderung zu senden und die zurückgegebenen JSON -Daten über JSON_DECODE () zu analysieren. $ data ['Ergebnisse'] ['Sunset'] enthält die UTC -Zeit des Sonnenuntergangs. Wir können diese Zeit nach der festgelegten Zeitzone anpassen, um sicherzustellen, dass sie der lokalen Zeit entspricht.

3.. Konvertieren Sie die UTC -Zeit in die Ortszeit

Die erhaltene Sonnenuntergangszeit ist normalerweise die UTC -Zeit, die wir in die lokale Zeit der Zielzeitzone konvertieren müssen. Dies kann mit der DateTime -Klasse und der DateTimezone -Klasse erreicht werden.

Hier ist ein Beispielcode für die Umwandlung der UTC -Zeit in eine lokale Zeitzone:

 <?php
// Holen Sie sich die Sonnenuntergangszeit(UTC)
$utc_sunset_time = $data['results']['sunset']; // Annehmen vonAPIErhalten inUTCZeit

// erstellenDateTimeObjekt und festgelegt alsUTCZeitzone
$datetime = new DateTime($utc_sunset_time, new DateTimeZone('UTC'));

// 转换为上海Zeitzone
$datetime->setTimezone(new DateTimeZone('Asia/Shanghai'));

// 输出转换后的本地Zeit
echo 'Die Sonnenuntergangszeit in Shanghai ist:' . $datetime->format('Y-m-d H:i:s');
?>

In diesem Beispiel erstellen wir zunächst ein DateTime -Objekt und setzen es über die DateTimezone -Klasse auf die UTC -Zeitzone. Verwenden Sie dann die SetTimeZone () -Methode, um die Zeit in die Shanghai -Zeitzone ( Asien/Shanghai ) umzuwandeln. Verwenden Sie schließlich die Format () -Methode, um die lokale Zeit auszugeben.

4. CODE CODE -Beispiel

Wenn Sie alle vorherigen Abschnitte kombinieren, zeigt dies ein vollständiges Beispiel für PHP -Code, das zeigt, wie die Zeitzone festgelegt und die genaue Sonnenuntergangszeit abgerufen wird:

 <?php
// Legen Sie die Zeitzone fest为上海
date_default_timezone_set('Asia/Shanghai');

// Setzen Sie Breitengrad und Längengrad
$latitude = 31.2304;
$longitude = 121.4737;

// verwendenAPIHolen Sie sich die Sonnenuntergangszeit
$api_url = "https://api.sunset-sunrise.org/json?lat={$latitude}&lng={$longitude}&formatted=0";
$response = file_get_contents($api_url);
$data = json_decode($response, true);

// ErhaltenUTCZeit
$utc_sunset_time = $data['results']['sunset'];

// erstellenDateTimeObjekt und festgelegt alsUTCZeitzone
$datetime = new DateTime($utc_sunset_time, new DateTimeZone('UTC'));

// 转换为上海Zeitzone
$datetime->setTimezone(new DateTimeZone('Asia/Shanghai'));

// 输出日落Zeit
echo 'Die Sonnenuntergangszeit in Shanghai ist:' . $datetime->format('Y-m-d H:i:s');
?>

Zusammenfassen

Indem wir die Zeitzone festlegen und die API verwenden, um die Sonnenuntergangszeit zu erhalten, können wir die Sonnenuntergangszeit in verschiedenen Regionen genau erreichen. Es ist wichtig sicherzustellen, dass die Zeitzone korrekt eingestellt ist, damit die lokale genaue Sonnenuntergangszeit verfügbar ist. Gleichzeitig kann die Nutzung der DateTime -Klasse und der DateTimezone -Klasse uns dabei helfen, die UTC -Zeit in die lokale Zeit der Zielzeitzone umzuwandeln.