W3docs

date_sunrise()

La función date_sunrise() de PHP calcula la hora del amanecer para una fecha y ubicación dadas. Disponible solo en versiones heredadas de PHP.

La importancia de la función date_sunrise() en PHP

Nota: La función date_sunrise() fue declarada obsoleta en PHP 5.2.0 y eliminada en PHP 8.0.0. El contenido a continuación se proporciona únicamente para versiones heredadas de PHP.

PHP es un lenguaje de programación ampliamente utilizado que se emplea habitualmente para crear aplicaciones web dinámicas. La función date_sunrise() es una de las muchas funciones integradas disponibles en PHP. Esta función se usa para calcular la hora del amanecer para una fecha y ubicación determinadas.

La función date_sunrise() es una herramienta esencial para los desarrolladores que crean aplicaciones que requieren los horarios de amanecer. Esta función puede calcular la hora del amanecer para cualquier ubicación en la Tierra, basándose en su latitud y longitud.

Sintaxis

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

Cómo usar la función date_sunrise() de PHP

La función date_sunrise() recibe un parámetro obligatorio y hasta cinco opcionales.

ParámetroDescripción
timestampEl timestamp Unix del día para el que se desea obtener la hora del amanecer.
returnFormatUno de los siguientes: SUNFUNCS_RET_STRING (un string hh:mm), SUNFUNCS_RET_DOUBLE (horas como float) o SUNFUNCS_RET_TIMESTAMP (un timestamp Unix).
latitudeLatitud en grados. Por defecto usa el valor de date.default_latitude en la configuración INI.
longitudeLongitud en grados. Por defecto usa el valor de date.default_longitude en la configuración INI.
zenithEl ángulo entre el centro del sol y el horizonte. Por defecto usa date.sunrise_zenith (90°50′).
utcOffsetDesplazamiento respecto a UTC en horas. Solo se utiliza con SUNFUNCS_RET_STRING y SUNFUNCS_RET_DOUBLE.

Valor de retorno: la hora del amanecer en el returnFormat elegido, o false en caso de fallo (por ejemplo, en regiones polares donde el sol no sale en el día indicado).

Para usar la función, primero obtenga las coordenadas de latitud y longitud de la ubicación que le interesa — herramientas en línea como Google Maps o GeoNames facilitan esta tarea. Luego llame a date_sunrise() con esas coordenadas y devolverá la hora del amanecer para la ubicación y fecha especificadas.

La función complementaria date_sunset() calcula los horarios de puesta del sol con una firma idéntica.

Ejemplos de uso de la función date_sunrise() de PHP

A continuación se presentan algunos ejemplos del uso de la función date_sunrise():

Ejemplo 1: Calcular la hora del amanecer para hoy en una ubicación específica

php— editable, runs on the server

Ejemplo 2: Calcular la hora del amanecer para una fecha específica en una ubicación concreta. Aquí strtotime() convierte una fecha legible por humanos en el timestamp Unix que espera 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.";
}
?>

Alternativas modernas para PHP 8+

Dado que PHP 8.0 eliminó los cálculos astronómicos integrados, las aplicaciones modernas suelen recurrir a bibliotecas dedicadas o API externas. Los enfoques más comunes son:

  • Paquetes de Composer como geo-sun o sunrise-sunset para cálculos locales sin dependencias externas.
  • API externas como Sunrise-Sunset.org u Open-Meteo para obtener datos fiables y actualizados sin mantener algoritmos locales.

Diagrama Mermaid: proceso de cálculo del amanecer

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

Conclusión

En conclusión, la función date_sunrise() calcula la hora del amanecer para una ubicación y fecha determinadas en versiones heredadas de PHP. Dado que fue eliminada en PHP 8.0, los proyectos modernos deben recurrir a un paquete de Composer o a una API externa. Para el manejo de fechas y horas relacionadas, consulte date(), mktime() y date_default_timezone_set().

Práctica

Práctica
¿Qué hace la función date_sunrise() en PHP?
¿Qué hace la función date_sunrise() en PHP?
Was this page helpful?