(PHP 5, PHP 7)
date_sunset — Returns time of sunset for a given day and location
$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
   ]]]]] ) : mixed
    date_sunset() returns the sunset time for a given
    day (specified as a timestamp) and location.
   
timestamp
       The timestamp of the day from which the sunset
       time is taken.
      
format
| 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 | 
latitudeDefaults to North, pass in a negative value for South. See also: date.default_latitude
longitudeDefaults 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.sunset_zenith
       
| Angle | Description | 
|---|---|
| 90°50' | Sunset: the point where the sun becomes invisible. | 
| 96° | Civil twilight: conventionally used to signify the end of dusk. | 
| 102° | Nautical twilight: the point at which the horizon ends being visible at sea. | 
| 108° | Astronomical twilight: the point at which the sun ends being the source of any illumination. | 
gmtoffset
       Specified in hours.
       The gmtoffset is ignored, if
       format is
       SUNFUNCS_RET_TIMESTAMP.
      
Every call to a date/time function will generate a E_NOTICE
if the time zone is not valid, and/or a E_STRICT
or E_WARNING message
if using the system settings or the TZ environment
variable. See also date_default_timezone_set()
| Version | Description | 
|---|---|
| 5.1.0 | 
Now issues the  | 
   Returns the sunset time in a specified format on
   success or FALSE on failure. One potential reason for failure is that the
   sun does not set at all, which happens inside the polar circles for part of
   the year.
  
Example #1 date_sunset() example
<?php
/* calculate the sunset time for Lisbon, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/
echo date("D M d Y"). ', sunset time : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);
?>
The above example will output something similar to:
Mon Dec 20 2004, sunset time : 18:13
Example #2 No sunset
<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>
The above example will output:
bool(false)