W3docs

date_sunrise()

Функция date_sunrise() в PHP вычисляет время восхода солнца для заданной даты и местоположения. Устарела в PHP 5.2.0 и удалена в PHP 8.0.0.

Важность функции PHP date_sunrise()

Примечание: Функция date_sunrise() была объявлена устаревшей в PHP 5.2.0 и удалена в PHP 8.0.0. Приведённый ниже материал предназначен исключительно для устаревших версий PHP.

PHP — широко используемый язык программирования, который часто применяется для создания динамических веб-приложений. Функция date_sunrise() — одна из многих встроенных функций, доступных в PHP. Она используется для вычисления времени восхода солнца для заданной даты и местоположения.

Функция date_sunrise() является незаменимым инструментом для разработчиков, создающих приложения, которым необходимы данные о времени восхода солнца. С её помощью можно вычислить время восхода для любого места на Земле, опираясь на широту и долготу.

Синтаксис

date_sunrise(
    int $timestamp,
    int $returnFormat = SUNFUNCS_RET_STRING,
    ?float $latitude = null,
    ?float $longitude = null,
    ?float $zenith = null,
    ?float $utcOffset = null
): string|int|float|false

Как использовать функцию PHP date_sunrise()

Функция date_sunrise() принимает один обязательный параметр и до пяти необязательных.

ПараметрОписание
timestampUnix-метка времени дня, для которого требуется узнать время восхода.
returnFormatОдно из значений: SUNFUNCS_RET_STRING (строка hh:mm), SUNFUNCS_RET_DOUBLE (часы в виде числа с плавающей точкой) или SUNFUNCS_RET_TIMESTAMP (Unix-метка времени).
latitudeШирота в градусах. По умолчанию используется значение INI-параметра date.default_latitude.
longitudeДолгота в градусах. По умолчанию используется значение INI-параметра date.default_longitude.
zenithУгол между центром солнца и горизонтом. По умолчанию используется значение date.sunrise_zenith (90°50′).
utcOffsetСмещение от UTC в часах. Применяется только при SUNFUNCS_RET_STRING и SUNFUNCS_RET_DOUBLE.

Возвращаемое значение: время восхода солнца в выбранном формате returnFormat или false в случае ошибки (например, в полярных регионах, где солнце не восходит в указанный день).

Чтобы использовать функцию, сначала определите координаты широты и долготы нужного местоположения — для этого удобно воспользоваться онлайн-инструментами, такими как Google Maps или GeoNames. Затем вызовите date_sunrise() с этими координатами, и функция вернёт время восхода солнца для указанного места и даты.

Вспомогательная функция date_sunset() вычисляет время заката и имеет идентичную сигнатуру.

Примеры использования функции PHP date_sunrise()

Ниже приведены примеры использования функции date_sunrise():

Пример 1: Вычисление времени восхода солнца на сегодня для конкретного местоположения

php— editable, runs on the server

Пример 2: Вычисление времени восхода солнца для конкретной даты и конкретного местоположения. Здесь strtotime() преобразует дату в удобочитаемом формате в Unix-метку времени, которую ожидает date_sunrise().

<?php
// Note: date_sunrise() was removed in PHP 8.0.0. This code is for legacy PHP versions only.
$date = "2023-03-03";
$timestamp = strtotime($date);
$latitude = 40.7128; // New York City latitude
$longitude = -74.0060; // New York City longitude
$zenith = ini_get("date.sunrise_zenith");
$sunrise_time = date_sunrise($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude, $zenith);

if ($sunrise_time !== false) {
    echo "The sunrise time for New York City on $date is $sunrise_time.";
} else {
    echo "Failed to calculate sunrise time.";
}
?>

Современные альтернативы для PHP 8+

Поскольку PHP 8.0 удалил встроенные астрономические вычисления, современные приложения, как правило, используют специализированные библиотеки или внешние API. Распространённые подходы включают:

  • Пакеты Composer, такие как geo-sun или sunrise-sunset, для локальных вычислений без внешних зависимостей.
  • Внешние API, например Sunrise-Sunset.org или Open-Meteo, для получения надёжных актуальных данных без необходимости поддерживать локальные алгоритмы.

Диаграмма Mermaid: процесс вычисления восхода солнца

graph LR;
    A[Enter latitude and longitude coordinates] --> B{Call date_sunrise() function};
    B -- Returns the sunrise time --> C[Display sunrise time];

Заключение

Функция date_sunrise() вычисляет время восхода солнца для заданного местоположения и даты в устаревших версиях PHP. Поскольку она была удалена в PHP 8.0, в современных проектах следует использовать пакет Composer или внешний API. Для работы с датой и временем также смотрите date(), mktime() и date_default_timezone_set().

Практика

Практика
Что делает функция date_sunrise() в PHP?
Что делает функция date_sunrise() в PHP?
Was this page helpful?