(PHP 5, PHP 7, PHP 8)
date_sunset — Возвращает время захода солнца для заданных дня и расположения
Начиная с PHP 8.1.0 функция УСТАРЕЛА. Разработчики языка настоятельно не рекомендуют полагаться на функцию. Вместо неё лучше пользоваться функцией date_sun_info().
$timestamp,$returnFormat = SUNFUNCS_RET_STRING,$latitude = null,$longitude = null,$zenith = null,$utcOffset = null
   Функция date_sunset() возвращает время захода солнца
   для дня, который указали в аргументе timestamp,
   и расположения.
  
timestamp
     
       Параметр timestamp принимает метку времени дня,
       для которого берётся время захода солнца.
      
returnFormat
     
| Константа | Описание | Пример | 
|---|---|---|
| SUNFUNCS_RET_STRING | Возвращает результат в виде значения с типом string | 16:46 | 
| SUNFUNCS_RET_DOUBLE | Возвращает результат в виде значения с типом float | 16.78243132 | 
| SUNFUNCS_RET_TIMESTAMP | Возвращает метку времени в виде значения с типом int | 1095034606 | 
latitude
     Значение по умолчанию — Северное полушарие, для Южного передаётся отрицательное значение. Смотрите также описание директивы date.default_latitude.
longitude
     Значение по умолчанию — восточная долгота, для западной передаётся отрицательное значение. Смотрите также описание директивы date.default_longitude.
zenith
     
       Параметр zenith устанавливает угол между центром Солнца и линией,
       перпендикулярной поверхности Земли. По умолчанию параметр берёт значение директивы
       date.sunrise_zenith.
       
| Угол | Описание | 
|---|---|
| 90°50' | Восход солнца: точка, в которой солнце становится невидимым. | 
| 96° | Гражданские сумерки: традиционно обозначает окончание заката. | 
| 102° | Навигационные сумерки: точка, в которой горизонт становится невидимым с моря. | 
| 108° | Астрономические сумерки: момент, в которой солнце перестаёт быть источником освещения. | 
utcOffset
     
       Задаётся в часах.
       Функция игнорирует параметр utcOffset,
       если значение параметра returnFormat
       равно значению константы SUNFUNCS_RET_TIMESTAMP.
      
   Функция возвращает время захода солнца в формате, который определили в параметре
   returnFormat, если завершилась успешно, или false, если возникла ошибка.
   Функция завершится неудачно, если солнце вообще не заходит,
   что бывает внутри полярных кругов в течение части года.
  
Каждый вызов функции для работы с датой и временем генерирует ошибку уровня E_WARNING
при неправильных настройках часового пояса. Смотрите также описание функции
date_default_timezone_set().
| Версия | Описание | 
|---|---|
| 8.1.0 | Функция устарела, пользуйтесь вместе неё функцию date_sun_info(). | 
| 8.0.0 | Параметры latitude,longitude,zenithиutcOffsetтеперь принимают значениеnull. | 
Пример #1 Пример получения времени заката функцией date_sunset()
<?php
/* Расчёт времени захода солнца в Лиссабоне, Португалия
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/
echo date("D M d Y"). ', время захода солнца : ' .date_sunset(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);
?>Вывод приведённого примера будет похож на:
Mon Dec 20 2004, время захода солнца : 18:13
Пример #2 Пример работы функции для времени и расположения, при которых солнце не заходит
<?php
$solstice = strtotime('2017-12-21');
var_dump(date_sunset($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>Результат выполнения приведённого примера:
bool(false)
