Aktueller Standort: Startseite> Neueste Artikel> Wie bekomme ich die Sonnenuntergangszeit eines bestimmten Datums mit der Funktion date_sunset () in PHP?

Wie bekomme ich die Sonnenuntergangszeit eines bestimmten Datums mit der Funktion date_sunset () in PHP?

M66 2025-06-29

In PHP wird die Funktion date_sunset () verwendet, um die Sonnenuntergangszeit eines bestimmten Datums und eines bestimmten Ortes zu erhalten. Dies ist sehr nützlich für die Entwicklung von Anwendungen in Bezug auf Wettervorhersage, tägliche Planung oder Geographie. Im Folgenden werden wir ausführlich erklären, wie diese Funktion verwendet und ein praktisches Beispiel angibt.

Grundlegende Verwendung von DATE_SUNSET () -Funktion

Der grundlegende Prototyp der Funktion date_sunset () lautet wie folgt:

 date_sunset ( int $timestamp , int $returnFormat = SUNFUNCS_RET_STRING , float $latitude , float $longitude , float $zenith = 90.5 , float $gmt_offset = 0 )

Parameterbeschreibung:

  • $ timestamp : Dieser Parameter repräsentiert den angegebenen Zeitstempel. Wenn der Zeitstempel, in dem Sie vorbeikommen, ein zukünftiges Datum ist, wird die Funktion die zukünftige Sonnenuntergangszeit zurückgeben.

  • $ returnFormat : Dieser Parameter bestimmt das zurückgegebene Format. Der Standardwert ist sunfuncs_ret_string , was das Return -String -Format bedeutet (z. B. "18:30:00"). Sie können auch ein Unix -Zeitstempelformat zurückgeben oder ein Array mit der Zeit zurückgeben.

  • $ Breite und $ Länge : Diese beiden Parameter geben den Breitengrad und Längengrad der Beobachtungsposition an. Mit diesen Parametern kann PHP die Sonnenuntergangszeit an einem bestimmten Ort berechnen.

  • $ zenith : Dieser Parameter repräsentiert die astronomische Position der Sonne. Der Standardwert beträgt 90,5, was den astronomischen Sonnenuntergangswinkel anzeigt. Sie können diesen Wert nach Bedarf einstellen.

  • $ GMT_OFFSET : Dieser Parameter gibt den Zeitunterschied mit GMT an und die Standardeinstellung ist 0.

Beispielcode: Erhalten Sie die Sonnenuntergangszeit für das angegebene Datum

Der folgende Beispielcode zeigt, wie die Funktion date_sunset () verwendet wird, um die Sonnenuntergangszeit zu einem bestimmten Datum (z. B. "2025-04-25") an einem bestimmten Ort (z. B. Peking) zu erhalten.

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

// Geben Sie Datum und Breitengrad und Längengrad ein(Pekings Breitengrad und Längengrad)
$date = '2025-04-25';
$latitude = 39.9042; // Peking Breitengrad
$longitude = 116.4074; // Peking Länge

// Datum in Zeitstempel konvertieren
$timestamp = strtotime($date);

// verwenden date_sunset() Holen Sie sich die Sonnenuntergangszeit
$sunset = date_sunset($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude);

// Sonnenuntergangszeit ausgeben
echo "Angegebenes Datum:$date Die Sonnenuntergangszeit ist:$sunset";
?>

Code analysieren:

  1. Setzen Sie die Zeitzone : Wir setzen die Zeitzone auf "Asien/Shanghai" über die Funktion DATE_DEFAULT_TIMEZONE_SET (), um sicherzustellen, dass die Zeitberechnung korrekt ist.

  2. Datum und Ort : Wir haben ein Datum (25. April 2025) und den Breitengrad und die Länge von Peking angegeben.

  3. Timestempe konvertieren : Verwenden Sie die Funktion Strtotime (), um eine Datumszeichenfolge in einen Zeitstempel umzuwandeln.

  4. Rufdatum_Sunset () : Diese Funktion berechnet die Sonnenuntergangszeit basierend auf dem angegebenen Zeitstempel, Breitengrad und Längengrad sowie anderen Parametern. Hier entscheiden wir uns für das String -Format zurück.

  5. Sonnenuntergangszeit ausgeben : Schließlich geben Sie die berechnete Sonnenuntergangszeit aus.

Ausgangsergebnis:

Wenn Sie den obigen Code ausführen, sieht die Ausgabe aus wie:

 Angegebenes Datum:2025-04-25 Die Sonnenuntergangszeit ist:18:31:00

Weitere Rückgabeformat

DATE_SUNSET () unterstützt auch unterschiedliche Rückgabebeformate, abhängig von dem $ returnFormat -Parameter, den Sie übergeben. Zusätzlich zu sunfuncs_ret_string (String -Format) können Sie auch die folgenden Konstanten verwenden:

  • Sunfuncs_ret_timestamp : Gibt das Unix -Zeitstempelformat zurück.

  • Sunfuncs_ret_array : Gibt ein Array mit Sonnenuntergangszeit und verwandten Informationen zurück.

Verwenden Sie beispielsweise sunfuncs_ret_timestamp , um das Unix -Zeitstempelformat zurückzugeben:

 $sunset_timestamp = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
echo "Unix Sonnenuntergangszeit im Zeitstempelformat:$sunset_timestamp";

Anmerkungen:

  • Die Funktion date_sunset () funktioniert nicht für alle Daten. Wenn das angegebene Datum die Sonnenuntergangszeit nicht berechnen kann (z. B. Sommer oder Winter in den polaren Regionen), kann falsch zurückgegeben werden.

  • Die Wahl von Breitengrad und Länge ist sehr wichtig, da die Sonnenuntergangszeit von Ihrem geografischen Ort abhängt.