date_sunrise

(PHP 5, PHP 7, PHP 8)

date_sunriseLiefert die Uhrzeit des Sonnenaufgangs für den angegebenen Tag und Ort

Warnung

Diese Funktion ist seit PHP 8.1.0 als DEPRECATED (veraltet) markiert. Von der Verwendung dieser Funktion wird dringend abgeraten. Stattdessen sollte date_sun_info() verwendet werden.

Beschreibung

date_sunrise(
    int $timestamp,
    int $returnFormat = SUNFUNCS_RET_STRING,
    ?float $latitude = null,
    ?float $longitude = null,
    ?float $zenith = null,
    ?float $utcOffset = null
): string|int|float|false

date_sunrise() gibt die Uhrzeit des Sonnenaufgangs für den angegebenen Tag (angegeben als timestamp) und Ort zurück.

Parameter-Liste

timestamp

Der Zeitstempel des Tages, für den die Uhrzeit des Sonnenaufgangs ermittelt wird.

returnFormat

returnFormat-Konstanten
Konstante Beschreibung Beispiel
SUNFUNCS_RET_STRING Gibt das Ergebnis als String zurück 16:46
SUNFUNCS_RET_DOUBLE Gibt das Ergebnis als Float zurück 16.78243132
SUNFUNCS_RET_TIMESTAMP Gibt das Ergebnis als Int zurück (Zeitstempel) 1095034606

latitude

Voreingestellt ist Nord, für Süd muss ein negativer Wert übergeben werden. Siehe auch: date.default_latitude

longitude

Voreingestellt ist Ost, für West muss ein negativer Wert übergeben werden. Siehe auch: date.default_longitude

zenith

zenith ist der Winkel zwischen dem Mittelpunkt der Sonne und einer Linie senkrecht zur Erdoberfläche. Voreingestellt ist date.sunrise_zenith

Gebräuchliche zenith-Winkel
Winkel Beschreibung
90°50' Sonnenaufgang: der Punkt, an dem die Sonne sichtbar wird.
96° Bürgerliche Dämmerung: wird üblicherweise verwendet, um den Beginn der Morgendämmerung zu kennzeichnen.
102° Nautische Dämmerung: der Punkt, an dem der Horizont auf See sichtbar wird.
108° Astronomische Dämmerung: Der Punkt, an dem die Sonne beginnt, die Quelle von Licht zu sein.

utcOffset

Wird in Stunden angegeben. Wenn returnFormat SUNFUNCS_RET_TIMESTAMP ist, wird utcOffset ignoriert.

Rückgabewerte

Gibt bei Erfolg die Uhrzeit des Sonnenaufgangs im angegebenen returnFormat zurück. Bei einem Fehler wird false zurückgegeben. Ein möglicher Grund für einen Fehler ist, dass die Sonne überhaupt nicht aufgeht, was innerhalb der Polargebiete während eines Teils des Jahres der Fall ist.

Fehler/Exceptions

Wenn die Zeitzone ungültig ist, wird bei jedem Aufruf einer Datums/Zeit-Funktion ein Fehler der Stufe E_WARNING erzeugt. Siehe auch date_default_timezone_set()

Changelog

Version Beschreibung
8.1.0 Diese Funktion ist veraltet und wurde durch date_sun_info() ersetzt.
8.0.0 latitude, longitude, zenith und utcOffset sind nun nullable (akzeptieren den null-Wert).

Beispiele

Beispiel #1 date_sunrise()-Beispiel

<?php

/* Berechnung der Uhrzeit des Sonnenaufgangs für Lissabon, Portugal
Breitengrad: 38.4 Nord
Längengrad: 9 West
Zenit ~= 90
Zeitverschiebung: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Mon Dec 20 2004, sunrise time : 08:54

Beispiel #2 Kein Sonnenaufgang

<?php
$solstice
= strtotime('2017-12-21');
var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Siehe auch

  • date_sun_info() - Liefert ein Array mit Informationen über Sonnenauf- und -untergang sowie Beginn und Ende der Dämmerung

add a note add a note

User Contributed Notes 3 notes

up
1
nomail at nospam dot com
6 years ago
maybe I am wrong, but I think

SUNFUNCS_RET_TIMESTAMP     return GMT(0) time

SUNFUNCS_RET_STRING     Return local time
SUNFUNCS_RET_DOUBLE     Return local time
up
0
scottix at gmail dot com
11 years ago
If you are working in multiple timezones getting the offset from a date is a little tricky because you need it in hours.

<?php

$time
= new DateTime('now', new DateTimeZone('America/Los_Angeles'));

date_sunrise(
$time->getTimestamp(),
SUNFUNCS_RET_TIMESTAMP,
38.4,
-
9,
90,
$time->getOffset() / 3600
);
up
-5
jonathanNO dot kuhnSPAM at gmailNOSPAM dot com
14 years ago
After some searching, I finally found a website that can calculate the sun's zenith. Just look up your city's lat/long (remember, west/south are negative even if it doesn't show where you look up the lat/long) and the time of sunrise/sunset and use this site:

http://solardat.uoregon.edu/cgi-bin/SolarPositionCalculator.cgi

You have to enter in the sunrise/sunset times separately, but it works.
San Diego is:
Lat: 32.73
Long: -117.17
Sunrise Z.: 90.7379
Sunset Z.: 90.8880
To Top