date_sun_info

(PHP 5 >= 5.1.2, PHP 7)

date_sun_info Возвращает массив с информацией о закате/рассвете и начале/окончании сумерек

Описание

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

Список параметров

timestamp

Временная метка Unix.

latitude

Широта в градусах.

longitude

Долгота в градусах.

Возвращаемые значения

Возвращает массив в случае успешного выполнения или false в случае возникновения ошибки. Структура массива подробно описана в следующем списке:

sunrise
Временная метка восхода солнца (зенитный угол = 90°35').
sunset
Временная метка заката солнца (зенитный угол = 90°35').
transit
Временная метка, когда солнце находится в своем зените, то есть достигло самой верхней точки.
civil_twilight_begin
Начало гражданского рассвета (зенитный угол = 96°). Оно заканчивается на sunrise.
civil_twilight_end
Конец гражданского заката (зенитный угол = 96°). Оно начинается на sunset.
nautical_twilight_begin
Начало навигационного рассвета (зенитный угол = 102°). Оно заканчивается civil_twilight_begin.
nautical_twilight_end
Конец навигационного заката (зенитный угол = 102°). Оно начинается на civil_twilight_end.
astronomical_twilight_begin
Начало астрономического рассвета (зенитный угол = 108°). Оно заканчивается на nautical_twilight_begin.
astronomical_twilight_end
Конец астрономического заката (зенитный угол = 108°). Оно начинается на nautical_twilight_end.

Значения элементов массива - лбо временная метка UNIX, false, если солнце находится ниже соответствующего зенита в течение всего дня, или true, если солнце находится выше соответствующего зенита в течение всего дня.

Примеры

Пример #1 Пример использования date_sun_info()

<?php
$sun_info 
date_sun_info(strtotime("2006-12-12"), 31.766735.2333);
foreach (
$sun_info as $key => $val) {
    echo 
"$key: " date("H:i:s"$val) . "\n";
}
?>

Результат выполнения данного примера:

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

Пример #2 Полярная ночь

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

Результат выполнения данного примера:

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

Пример #3 Полуночное солнце

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

Результат выполнения данного примера:

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

Смотрите также

  • date_sunrise() - Возвращает время рассвета для заданных дня и местоположения
  • date_sunset() - Возвращает время захода солнца для заданных дня и местоположения