# date_sun_info

(PHP 5 >= 5.1.2, PHP 7)

date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end

### Description

date_sun_info ( int `$timestamp` , float `$latitude` , float `$longitude` ) : array|false

### Parameters

`timestamp`

  Unix timestamp.

`latitude`

  Latitude in degrees.

`longitude`

  Longitude in degrees.

### Return Values

Returns array on success or `FALSE` on failure. The structure of the array is detailed in the following list:

`sunrise`
  The timestamp of the sunrise (zenith angle = 90°35').
`sunset`
  The timestamp of the sunset (zenith angle = 90°35').
`transit`
  The timestamp when the sun is at its zenith, i.e. has reached its topmost point.
`civil_twilight_begin`
  The start of the civil dawn (zenith angle = 96°). It ends at `sunrise`.
`civil_twilight_end`
  The end of the civil dusk (zenith angle = 96°). It starts at `sunset`.
`nautical_twilight_begin`
  The start of the nautical dawn (zenith angle = 102°). It ends at `civil_twilight_begin`.
`nautical_twilight_end`
  The end of the nautical dusk (zenith angle = 102°). It starts at `civil_twilight_end`.
`astronomical_twilight_begin`
  The start of the astronomical dawn (zenith angle = 108°). It ends at `nautical_twilight_begin`.
`astronomical_twilight_end`
  The end of the astronomical dusk (zenith angle = 108°). It starts at `nautical_twilight_end`.

The values of the array elements are either UNIX timestamps, `FALSE` if the sun is below the respective zenith for the whole day, or `TRUE` if the sun is above the respective zenith for the whole day.

### Examples

Example #1 A date_sun_info() example

`<?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";
}
?>`

The above example will output:

    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

Example #2 Polar night

`<?php
var_dump(date_sun_info(strtotime("2017-12-21"), 90, 0));
?>`

The above example will output:

    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)
    }

Example #3 Midnight sun

`<?php
var_dump(date_sun_info(strtotime("2017-06-21"), 90, 0));
?>`

The above example will output:

    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)
    }

### See Also

- date_sunrise() - Returns time of sunrise for a given day and location
- date_sunset() - Returns time of sunset for a given day and location