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

