In PHP können wir den Sonnenuntergang und die Sonnenaufgangszeit des Tages durch die Funktionen von Date_Sunset () und Date_Sunrise () erhalten. Durch die Kombination der Rückgabewerte dieser beiden Funktionen können wir die Tagesdauer eines Tages berechnen. Dieser Artikel zeigt Ihnen, wie Sie dieses Ziel erreichen können.
Mit der Funktion date_sunset () wird die Sonnenuntergangszeit eines bestimmten Datums und einer bestimmten Position erhalten.
Die Funktion Date_Sunrise () wird verwendet, um die Sonnenaufgangszeit eines bestimmten Datums und eines bestimmten Ortes zu erhalten.
Die Rückgabewerte dieser Funktionen sind UNIX -Zeitstempel, und wir können die dauerhafte Dauer der Tageszeit berechnen. Indem wir den Breitengrad- und Datumsparameter angemessen festlegen, können wir die Tageslichtdauer überall auf der Welt erhalten.
DATE_SUNSET () und DATE_SUNRISE () haben mehrere Parameter. Die beiden am häufigsten verwendeten Parameter sind wie folgt:
Zeitstempel : Zeitstempel, dargestellt Datum und Uhrzeit, normalerweise mit time () , um die aktuelle Zeit zu erhalten.
Breitengrad : Breitengrad, was auf den nördlichen Breitengrad (positiv) oder den südlichen Breitengrad (negativ) des geografischen Ortes hinweist.
Länge : Längengrad, was auf die östliche Länge (positiv) oder westlicher Länge (negativ) der geografischen Lage hinweist.
Zenith : Wird verwendet, um den Höhenwinkel der Sonne (normalerweise 90,5 Grad) für Sonnenaufgang und Sonnenuntergang zu berechnen.
Berechnen wir als nächstes die Tageslichtdauer eines Tages mit einem einfachen Beispiel:
<?php
// Stellen Sie Datums- und Standortparameter fest
$latitude = 40.7128; // New Yorks Breite
$longitude = -74.0060; // Länge in New York
$timestamp = time(); // Aktueller Zeitstempel
// Holen Sie sich Sonnenaufgang und Sonnenuntergangszeiten(Der Rückgabewert ist Unix Zeitstempel)
$sunrise = date_sunrise($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
$sunset = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
// Berechnen Sie die Tageslichtdauer(Einheiten in Sekunden)
$day_length = $sunset - $sunrise;
// In Stunden und Minuten konvertieren
$hours = floor($day_length / 3600);
$minutes = floor(($day_length % 3600) / 60);
// Ausgangsergebnis
echo "Tageszeit:$hours Stunde $minutes Minute\n";
?>
Parametereinstellungen : Wir setzen die Breite und Länge von New York (40,7128 ° N, 74,0060 ° W) sowie den aktuellen Zeitstempel.
Rufen Sie DATE_SUNRISE () und DATE_SUNSET () an : Diese beiden Funktionen geben die Zeitstempel von Sonnenaufgang und Sonnenuntergang zurück.
Berechnen Sie die Tagesdauer : Durch Subtrahieren des Sonnenuntergangstempels vom Zeitstempel des Sonnenaufgangs können Sie die Tagesdauer (in Sekunden) erhalten.
Konvertierungsdauer : Wir wandeln Sekunden in Stunden und Minuten für die einfache Ausgabe um.
Angenommen, beim Ausführen dieses Code ist das aktuelle Datum der 26. April 2025 und die Tagesdauer in New York kann 13 Stunden und 15 Minuten betragen. Die spezifischen Werte variieren je nach Datum und geografischer Lage des Tages.
Wenn Sie die Tagesdauer anderer Standorte berechnen möchten, können Sie den entsprechenden Wert nach verschiedenen Breiten und Längswerten festlegen. Wenn Sie beispielsweise die Tagesdauer in Peking berechnen möchten, können Sie den Breitengrad und die Länge an:
$latitude = 39.9042; // Pekings Breite
$longitude = 116.4074; // Länge in Peking
Das gleiche Prinzip gilt für andere Städte. Sie müssen nur den Breitengrad und die Länge ändern.
Die Zeitstempel, die von DATE_SUNSET () und DATE_SUNRISE () -Funktionen zurückgegeben wurden, basieren auf UTC (koordinierte universelle Zeit). Wenn Sie also die lokale Zeit anzeigen müssen, stellen Sie sicher, dass Sie gemäß der Zeitzone konvertieren.
Diese beiden Funktionen unterstützen auch mehrere Rückgabeformate, einschließlich Zeitstempel, formatierter Zeichenfolgen usw. Sie können den zweiten Parameter von DATE_SUNSET () und DATE_SUNRISE () nach Bedarf einstellen, um das Format des Rückgabewerts zu ändern.