Définit un en-tête visible d'un élément
Maîtrisez les calculs liés au soleil en PHP grâce à date_sun_info(). Obtenez les heures précises du lever et du coucher du soleil pour n'importe quelle date et position géographique
Comment obtenir les heures du lever et du coucher du soleil avec date_sun_info()
La fonction date_sun_info() est un outil puissant offert par le langage de programmation PHP pour effectuer des calculs liés au lever et au coucher du soleil. Que vous ayez besoin de connaître l'heure exacte du lever ou du coucher du soleil pour une application de météo, une application d'astronomie ou pour tout autre projet nécessitant des informations sur le soleil, cette fonction vous permettra d'obtenir facilement ces données précieuses.
La fonction date_sun_info() est une fonction intégrée dans PHP qui permet de récupérer diverses informations liées au lever et au coucher du soleil pour une date et une position géographique spécifiques. Elle utilise les coordonnées de latitude et de longitude pour calculer ces informations.
date_sun_info ( int $timestamp , float $latitude , float $longitude ) : array|false
La fonction date_sun_info() prend trois paramètres obligatoires :
La fonction retourne un tableau associatif contenant les informations sur le soleil pour la date et l'emplacement spécifiés. Le tableau contient les clés suivantes :
Si les informations ne sont pas disponibles pour la date et l'emplacement spécifiés, la fonction retournera false.
Le code affichera les heures du lever et du coucher du soleil, ainsi que le passage au méridien du soleil pour Paris, France, le 19 juillet 2023.
Exemple : Copier le code
<?php $date = strtotime('2023-07-19'); $latitude = 48.8566; // Paris, France $longitude = 2.3522; $sun_info = date_sun_info($date, $latitude, $longitude); if ($sun_info !== false) { echo 'Lever du soleil : ' . $sun_info['sunrise'] . '<br>'; echo 'Coucher du soleil : ' . $sun_info['sunset'] . '<br>'; echo 'Passage au méridien : ' . $sun_info['transit'] . '<br>'; } else { echo 'Les informations sur le soleil ne sont pas disponibles pour cette date et cet emplacement.'; } ?>
La première ligne, $date = strtotime('2023-07-19');, fixe l'horodatage à la date du 19 juillet 2023. Les deuxième et troisième lignes, $latitude = 48.8566; // Paris, France et $longitude = 2.3522;, fixent la latitude et la longitude de Paris, France.
La quatrième ligne, $sun_info = date_sun_info($date, $latitude, $longitude);, appelle la fonction date_sun_info() et stocke les résultats dans la variable $sun_info.
La cinquième ligne, if ($sun_info !== false) {, commence une condition if qui vérifie si la variable $sun_info contient des informations sur le soleil.
La sixième ligne, echo 'Lever du soleil : ' . $sun_info['sunrise'] . '<br>';, imprime l'heure du lever du soleil si la variable $sun_info contient des informations sur le soleil.
La septième ligne, echo 'Coucher du soleil : ' . $sun_info['sunset'] . '<br>';, imprime l'heure du coucher du soleil si la variable $sun_info contient des informations sur le soleil.
La huitième ligne, echo 'Passage au méridien : ' . $sun_info['transit'] . '<br>';, imprime l'heure du passage au méridien du soleil si la variable $sun_info contient des informations sur le soleil.
La neuvième ligne, } else {, commence une condition else qui est exécutée si la variable $sun_info ne contient pas d'informations sur le soleil.
La dixième ligne, echo 'Les informations sur le soleil ne sont pas disponibles pour cette date et cet emplacement.';, imprime un message indiquant que les informations sur le soleil ne sont pas disponibles pour la date et l'emplacement spécifiés.
Le code qui suit affichera toutes les informations sur le lever, le coucher du soleil et autres événements solaires pour San Francisco, Californie, le 19 juillet 2023.
Exemple : Copier le code
<?php $timestamp = strtotime('2023-07-19'); $latitude = 37.7749; // Latitude de San Francisco $longitude = -122.4194; // Longitude de San Francisco $sunInfo = date_sun_info($timestamp, $latitude, $longitude); foreach ($sunInfo as $key => $value) { echo "<p>$key : " . date('H:i', $value) . "</p>"; } ?>
La première ligne, $timestamp = strtotime('2023-07-19');, fixe l'horodatage à la date du 19 juillet 2023.
Les deuxième et troisième lignes, $latitude = 37.7749; // Latitude de San Francisco et $longitude = -122.4194; // Longitude de San Francisco, fixent la latitude et la longitude de San Francisco, Californie.
La quatrième ligne, $sunInfo = date_sun_info($timestamp, $latitude, $longitude);, appelle la fonction date_sun_info() et stocke les résultats dans la variable $sunInfo.
La cinquième ligne, foreach ($sunInfo as $key => $value) {, démarre une boucle foreach qui itère sur la variable $sunInfo.
La sixième ligne, echo "<p>$key : " . date('H:i', $value) . "</p>";, imprime la clé et la valeur de chaque élément de la variable $sunInfo.
Le code est un exemple d'utilisation de la fonction date_sun_info() pour calculer la durée du jour à San Francisco le 19 juillet 2023.
Le code commence par définir les variables $timestamp, $latitude et $longitude. Ces variables correspondent à la date, la latitude et la longitude de San Francisco. Ensuite, il appelle la fonction date_sun_info() pour obtenir les informations sur le soleil pour la date et le lieu donnés. Enfin, il calcule la différence entre l'heure du coucher du soleil et l'heure du lever du soleil et l'affiche dans un format lisible.
Exemple : Copier le code
<?php $timestamp = strtotime('2023-07-19'); $latitude = 37.7749; // Latitude de San Francisco $longitude = -122.4194; // Longitude de San Francisco $sunInfo = date_sun_info($timestamp, $latitude, $longitude); $diff = $sunInfo['sunset'] - $sunInfo['sunrise']; echo "Durée du jour: ", floor($diff / 3600), "h ", floor(($diff % 3600) / 60), "m ", floor($diff % 60), "s"; ?>
Ce code peut être utilisé pour calculer la durée du jour pour n'importe quelle date et lieu. Il suffit de modifier les valeurs des variables $timestamp, $latitude et $longitude pour correspondre à la date, la latitude et la longitude que vous souhaitez utiliser.
Le résultat du code est:
Durée du jour: 14h 36m 13s
Ce qui signifie que le jour du 19 juillet 2023 à San Francisco aura une durée de 14 heures, 36 minutes et 13 secondes.
Pour le calcule de la durée de la nuit on utilise le même code avec:
$diff = 24 * 3600 - ($sunInfo['sunset'] - $sunInfo['sunrise']);