php[world] 2018 - Call for Speakers

date_sunrise

(PHP 5, PHP 7)

date_sunriseReturns time of sunrise for a given day and location

Beschreibung

mixed 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 ]]]]] )

date_sunrise() returns the sunrise time for a given day (specified as a timestamp) and location.

Parameter-Liste

timestamp

The timestamp of the day from which the sunrise time is taken.

format

format constants
constant description example
SUNFUNCS_RET_STRING returns the result as string 16:46
SUNFUNCS_RET_DOUBLE returns the result as float 16.78243132
SUNFUNCS_RET_TIMESTAMP returns the result as integer (timestamp) 1095034606

latitude

Defaults to North, pass in a negative value for South. See also: date.default_latitude

longitude

Defaults to East, pass in a negative value for West. See also: date.default_longitude

zenith

zenith is the angle between the center of the sun and a line perpendicular to earth's surface. It defaults to date.sunrise_zenith

Common zenith angles
Angle Description
90°50' Sunrise: the point where the sun becomes visible.
96° Civil twilight: conventionally used to signify the start of dawn.
102° Nautical twilight: the point at which the horizon starts being visible at sea.
108° Astronomical twilight: the point at which the sun starts being the source of any illumination.

gmtoffset

Specified in hours. The gmtoffset is ignored, if format is SUNFUNCS_RET_TIMESTAMP.

Rückgabewerte

Returns the sunrise time in a specified format on successIm Fehlerfall wird FALSE zurückgegeben.. One potential reason for failure is that the sun does not rise at all, which happens inside the polar circles for part of the year.

Fehler/Exceptions

Jeder Aufruf der Datums- und Zeitfunktionen generiert eine E_NOTICE-Warnung, wenn die Zeitzone ungültig ist und eine E_STRICT-Nachricht oder eine E_WARNING-Warnung, wenn die Systemeinstellung oder die TZ-Umgebungsvariable genutzt wird. Siehe auch date_default_timezone_set()

Changelog

Version Beschreibung
5.1.0

Erzeugt nun E_STRICT- und E_NOTICE-Zeitzonenfehler.

Beispiele

Beispiel #1 date_sunrise() example

<?php

/* calculate the sunrise time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING38.4, -9901);

?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Mon Dec 20 2004, sunrise time : 08:54

Beispiel #2 No sunrise

<?php
$solstice 
strtotime('2017-12-21');
var_dump(date_sunrise($solsticeSUNFUNCS_RET_STRING69.245833, -53.537222));
?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

bool(false)

Siehe auch

  • date_sunset() - Returns time of sunset for a given day and location
  • date_sun_info() - Returns an array with information about sunset/sunrise and twilight begin/end

add a note add a note

User Contributed Notes 3 notes

up
0
scottix at gmail dot com
4 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
-1
nomail at nospam dot com
2 months 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
-3
jonathanNO dot kuhnSPAM at gmailNOSPAM dot com
8 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