In PHP, DATE_SUNRISE () und DATE_SUNSET () sind zwei sehr praktische Funktionen, die die Sonnenaufgang- und Sonnenuntergangszeiten des Tages basierend auf dem angegebenen Datum und der geografischen Koordinaten berechnen können. Durch die Kombination dieser beiden Funktionen können wir die Gesamtdauer des Tages sehr leicht berechnen.
Dies ist sehr wertvoll für Anwendungsszenarien, die die Anpassung der Geschäftslogik entsprechend der Tageslänge erfordern, z. B. automatische Lichtschaltungen, intelligente Farmen, Outdoor -Aktivitätsmanagement und andere Systeme.
date_sunrise(int $timestamp, int $format = SUNFUNCS_RET_STRING, float $latitude = ini_get("date.default_latitude"), float $longitude = ini_get("date.default_longitude"), float $zenith = ini_get("date.sunrise_zenith"), float $gmt_offset = 0): string|int|float|false
date_sunset(int $timestamp, int $format = SUNFUNCS_RET_STRING, float $latitude = ini_get("date.default_latitude"), float $longitude = ini_get("date.default_longitude"), float $zenith = ini_get("date.sunset_zenith"), float $gmt_offset = 0): string|int|float|false
Lassen Sie uns ein konkretes Beispiel verwenden, um zu veranschaulichen, wie man die Tageszeit berechnet:
Datum: aktuelles Datum
Koordinaten: Peking City (Breitengrad 39.9042, Länge 116.4074)
Zeitzone: Ost Achter Bezirk (UTC+8)
<?php
date_default_timezone_set('Asia/Shanghai');
$timestamp = time();
$latitude = 39.9042;
$longitude = 116.4074;
$gmt_offset = 8;
// Holen Sie sich Sonnenaufgang und Sonnenuntergangszeiten(von UNIX Kehren Sie in Zeitstempelform zurück)
$sunrise = date_sunrise($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90, $gmt_offset);
$sunset = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90, $gmt_offset);
if ($sunrise !== false && $sunset !== false) {
$dayLength = $sunset - $sunrise;
// Konvertieren Sie in Stunde und Minute -Format
$hours = floor($dayLength / 3600);
$minutes = floor(($dayLength % 3600) / 60);
echo "Sonnenaufgangszeit: " . date("H:i:s", $sunrise) . PHP_EOL;
echo "Sonnenuntergangszeit: " . date("H:i:s", $sunset) . PHP_EOL;
echo "Tageszeit: {$hours}Stunde{$minutes}Minute" . PHP_EOL;
} else {
echo "无法计算日出或Sonnenuntergangszeit。Bitte überprüfen Sie die Koordinaten oder Datumseinstellungen。";
}
Der Zenith -Winkel, der von Datum_Sunrise () und Datum_Sunset () verwendet wird, beträgt standardmäßig 90 Grad. Dies bedeutet, dass der Sonnenaufgang und der Sonnenuntergang aus der Position berechnet werden, an der der Horizont gerade gestiegen oder gefallen ist. Es kann bei Bedarf eingestellt werden.
Der Zeitzonen -Offset ( $ GMT_Offset ) muss korrekt eingestellt werden, um sicherzustellen, dass die Ausgangszeit der lokalen Zeit entspricht.
Wenn die zurückgegebenen Falsch sind , ist dies normalerweise auf besondere Umstände wie abnormale Koordinateneinstellung, extremer Tag oder extreme Nacht zurückzuführen.
Diese Berechnungsmethode kann leicht in ein zeitempfindliches System eingebettet werden, wie z. B.:
Automatisches Beleuchtungssystem (wie Smart -Home -Controller)
Astronomische API -Schnittstelle wie https://api.gitbox.net/astro/dayLength?lat=39.9&lon=116.4
Widget im Freien im Freien, um Tagesänderungen in Echtzeit zu zeigen
Unter Verwendung dieser von PHP bereitgestellten Sonnenfunktionen können wir Zeitdaten, die sich auf den Solar -Altitude -Winkel beziehen, ohne auf externe Dienste stützen und dem System eine intelligentere Grundlage für das Urteilsvermögen bereitstellen.