date_sun_info
(PHP 5 >= 5.1.2, PHP 7, PHP 8)
date_sun_info — Liefert ein Array mit Informationen über Sonnenauf- und -untergang sowie Beginn und Ende der Dämmerung
Beschreibung
$timestamp
, float $latitude
, float $longitude
): arrayParameter-Liste
-
timestamp
-
Ein Unix-Zeitstempel
-
latitude
-
Eine geografische Breite in Grad
-
longitude
-
Eine geografische Länge in Grad
Rückgabewerte
Gibt bei Erfolg ein Array zurück. Bei einem Fehler wird false
zurückgegeben.
Die Struktur des Arrays wird in der folgenden Liste beschrieben:
-
sunrise
- Der Zeitstempel des Sonnenaufgangs (Zenitwinkel = 90°35').
-
sunset
- Der Zeitstempel des Sonnenuntergangs (Zenitwinkel = 90°35').
-
transit
- Der Zeitstempel, wenn die Sonne im Zenit steht, d.h. wenn sie ihren höchsten Punkt erreicht hat.
-
civil_twilight_begin
-
Der Beginn der bürgerlichen Morgendämmerung (Zenitwinkel = 96°); sie
endet bei
sunrise
. -
civil_twilight_end
-
Das Ende der bürgerlichen Abenddämmerung (Zenitwinkel = 96°); sie
beginnt bei
sunset
. -
nautical_twilight_begin
-
Der Beginn der nautischen Morgendämmerung (Zenitwinkel = 102°); sie
endet bei
civil_twilight_begin
. -
nautical_twilight_end
-
Das Ende der nautischen Abenddämmerung (Zenitwinkel = 102°); sie
beginnt bei
civil_twilight_end
. -
astronomical_twilight_begin
-
Der Beginn der astronomischen Morgendämmerung (Zenitwinkel = 108°); sie
endet bei
nautical_twilight_begin
. -
astronomical_twilight_end
-
Das Ende der astronomischen Abenddämmerung (Zenitwinkel = 108°); sie
beginnt bei
nautical_twilight_end
.
Die Werte der Array-Elemente sind entweder UNIX-Zeitstempel, false
, wenn
die Sonne den ganzen Tag über unter dem jeweiligen Zenit steht, oder
true
, wenn die Sonne den ganzen Tag über dem jeweiligen Zenit steht.
Changelog
Version | Beschreibung |
---|---|
7.2.0 | Die Berechnung wurde korrigiert und bezieht sich nun auf die lokale Mitternacht statt auf die lokale Mittagszeit, was die Ergebnisse leicht verändert. |
Beispiele
Beispiel #1 Ein date_sun_info()-Beispiel
<?php
$sun_info = date_sun_info(strtotime("2006-12-12"), 31.7667, 35.2333);
foreach ($sun_info as $key => $val) {
echo "$key: " . date("H:i:s", $val) . "\n";
}
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
sunrise: 05:52:11 sunset: 15:41:21 transit: 10:46:46 civil_twilight_begin: 05:24:08 civil_twilight_end: 16:09:24 nautical_twilight_begin: 04:52:25 nautical_twilight_end: 16:41:06 astronomical_twilight_begin: 04:21:32 astronomical_twilight_end: 17:12:00
Beispiel #2 Polarnacht
<?php
var_dump(date_sun_info(strtotime("2017-12-21"), 90, 0));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(9) { ["sunrise"]=> bool(false) ["sunset"]=> bool(false) ["transit"]=> int(1513857490) ["civil_twilight_begin"]=> bool(false) ["civil_twilight_end"]=> bool(false) ["nautical_twilight_begin"]=> bool(false) ["nautical_twilight_end"]=> bool(false) ["astronomical_twilight_begin"]=> bool(false) ["astronomical_twilight_end"]=> bool(false) }
Beispiel #3 Mitternachtssonne
<?php
var_dump(date_sun_info(strtotime("2017-06-21"), 90, 0));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
array(9) { ["sunrise"]=> bool(true) ["sunset"]=> bool(true) ["transit"]=> int(1498046510) ["civil_twilight_begin"]=> bool(true) ["civil_twilight_end"]=> bool(true) ["nautical_twilight_begin"]=> bool(true) ["nautical_twilight_end"]=> bool(true) ["astronomical_twilight_begin"]=> bool(true) ["astronomical_twilight_end"]=> bool(true) }
Siehe auch
- date_sunrise() - Liefert die Uhrzeit des Sonnenaufgangs für den angegebenen Tag und Ort
- date_sunset() - Liefert die Uhrzeit des Sonnenuntergangs für den angegebenen Tag und Ort