Saltar al contenido

date_sunset()

Introducción

Bienvenido a nuestra guía completa sobre la función de PHP date_sunset(). En esta guía, cubriremos todos los aspectos de date_sunset() y sus usos. Nuestro objetivo es brindarte la información más profunda y útil posible, para que puedas comprender mejor cómo utilizar esta función en tus proyectos PHP.

Nota: date_sunset() fue marcada como obsoleta en PHP 8.0 y eliminada en PHP 8.1. Para aplicaciones PHP modernas, considera usar la clase DateTime con cálculos de zona horaria o APIs meteorológicas externas.

¿Qué es la función PHP Date Sunset?

La función PHP date_sunset() es una función integrada que devuelve la hora del atardecer para una fecha y ubicación específicas. Esta función calcula la hora del atardecer en función de la fecha especificada, la latitud y longitud de la ubicación y el cenit. El cenit es el ángulo medido desde la vertical (hacia arriba). El valor predeterminado de 90.83 tiene en cuenta la refracción atmosférica y el crepúsculo civil.

La función date_sunset() devuelve la hora del atardecer en formato de marca de tiempo Unix, que es el número de segundos transcurridos desde el 1 de enero de 1970. Este formato es útil porque se puede convertir fácilmente a otros formatos de fecha y hora utilizando otras funciones de fecha y hora de PHP.

Sintaxis de la función PHP Date Sunset

La sintaxis de la función PHP date_sunset() es la siguiente:

Sintaxis de la función PHP Date Sunset

php
date_sunset ( time [, format [, latitude [, longitude [, zenith [, gmt_offset ]]]]] )

Parámetros:

  • time: La marca de tiempo Unix que representa la fecha para la cual se debe calcular la hora del atardecer. Si este parámetro no se especifica, se utilizará la hora actual.
  • format: El formato en el que se debe devolver la hora del atardecer. Este parámetro es opcional y su valor predeterminado es "H:i".
  • latitude: La latitud de la ubicación para la cual se debe calcular la hora del atardecer. Este parámetro es opcional y su valor predeterminado es 0.
  • longitude: La longitud de la ubicación para la cual se debe calcular la hora del atardecer. Este parámetro es opcional y su valor predeterminado es 0.
  • zenith: El ángulo cenital para el cual se debe calcular la hora del atardecer. Este parámetro es opcional y su valor predeterminado es 90.83, que corresponde al cenit para el crepúsculo civil.
  • gmt_offset: El desplazamiento GMT para la ubicación para la cual se debe calcular la hora del atardecer. Este parámetro es opcional y su valor predeterminado es 0.

Ejemplo de uso de la función PHP Date Sunset

El siguiente ejemplo demuestra la función para entornos PHP heredados (PHP 7.x y versiones anteriores):

Ejemplo de uso de la función PHP Date Sunset

php
<?php
date_default_timezone_set('UTC');
$date = strtotime("2023-03-03");
$sunset_time = date_sunset($date, SUNFUNCS_RET_TIMESTAMP, 37.7749, -122.4194, 90.83);
echo "The sunset time on March 3, 2023, in San Francisco is ".date("H:i", $sunset_time);
?>

Salida:


console
The sunset time on March 3, 2023, in San Francisco is 18:12

Migración a PHP moderno

Dado que date_sunset() fue eliminada en PHP 8.1, las aplicaciones modernas deberían migrar a una biblioteca astronómica dedicada o a una API externa. La clase integrada DateTime de PHP maneja las zonas horarias y el formato, pero no calcula las posiciones del sol. Para una solución autocontenida, utiliza un paquete de Composer como sunrise-sunset o geo-sun. Alternativamente, consulta una API confiable de amanecer/atardecer y analiza la respuesta.

Patrón de migración de ejemplo utilizando una biblioteca dedicada:

php
// Requires: composer require sunrise-sunset/sunrise-sunset
use SunriseSunset\SunriseSunset;
use SunriseSunset\Location;

$location = new Location(37.7749, -122.4194);
$date = new DateTime('2023-03-03', new DateTimeZone('UTC'));
$sun = new SunriseSunset($location, $date);

echo "Sunset: " . $sun->getSunset()->format('H:i');

Cómo utilizar la función PHP Date Sunset en tus proyectos

La función PHP date_sunset() es una herramienta poderosa que puede utilizarse en una amplia variedad de proyectos PHP. A continuación, se presentan algunos ejemplos de cómo puede usarse:

  1. Aplicaciones meteorológicas: Si estás desarrollando una aplicación meteorológica, puedes utilizar la función PHP date_sunset() para mostrar la hora del atardecer para una ubicación determinada.
  2. Aplicaciones de fotografía: Si estás desarrollando una aplicación de fotografía, puedes utilizar la función PHP date_sunset() para calcular la "hora dorada" para una ubicación determinada. La "hora dorada" es el período de tiempo justo después del amanecer o justo antes del atardecer, cuando la iluminación es óptima para la fotografía.
  3. Aplicaciones de eventos: Si estás desarrollando una aplicación de eventos, puedes utilizar la función PHP date_sunset() para mostrar la hora del atardecer para una fecha y ubicación determinadas. Esto puede ser útil para eventos al aire libre programados para terminar al atardecer.

Conclusión

Aunque date_sunset() cumplió su propósito en versiones heredadas de PHP, el desarrollo moderno prefiere bibliotecas astronómicas dedicadas o APIs externas para cálculos precisos de la posición del sol. Migrar a estos enfoques garantiza la compatibilidad con PHP 8.1+ y proporciona resultados más confiables para aplicaciones meteorológicas, de fotografía y de eventos.

Práctica

¿Qué hace la función date_sunset en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.