En PHP, nous pouvons obtenir l'heure du coucher du soleil et du lever du soleil de la journée via les fonctions date_sunset () et date_sunrise () . En combinant les valeurs de retour de ces deux fonctions, nous pouvons calculer la durée diurne d'une journée. Cet article vous montrera comment atteindre cet objectif.
La fonction date_sunset () est utilisée pour obtenir l'heure du coucher du soleil d'une date et d'une position données.
La fonction date_sunrise () est utilisée pour obtenir l'heure du lever du soleil d'une date et d'un emplacement donné.
Les valeurs de retour de ces fonctions sont des horodatages Unix, et nous pouvons calculer la durée de la journée en fonction. En définissant les paramètres de latitude et de la longitude et de la date de manière appropriée, nous pouvons obtenir la durée du jour partout dans le monde.
date_sunset () et date_sunrise () ont plusieurs paramètres. Les deux paramètres les plus couramment utilisés sont les suivants:
Timestamp : horodatage, représentant la date et l'heure, généralement en utilisant l'heure () pour obtenir l'heure actuelle.
Latitude : latitude, indiquant la latitude nord (positive) ou la latitude sud (négative) de l'emplacement géographique.
Longitude : longitude, indiquant la longitude orientale (positive) ou la longitude occidentale (négative) de l'emplacement géographique.
Zenith : utilisé pour calculer l'angle de hauteur du soleil (généralement 90,5 degrés) pour le lever du soleil et le coucher du soleil.
Ensuite, calculons la durée du jour d'une journée avec un exemple simple:
<?php
// Définir les paramètres de date et d'emplacement
$latitude = 40.7128; // Latitude de New York
$longitude = -74.0060; // Longitude à New York
$timestamp = time(); // Horodatage actuel
// Obtenez des temps de soleil et de coucher de soleil(La valeur de retour est Unix Horodatage)
$sunrise = date_sunrise($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
$sunset = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude);
// Calculez la durée du jour(Unités en quelques secondes)
$day_length = $sunset - $sunrise;
// Convertir en heures et minutes
$hours = floor($day_length / 3600);
$minutes = floor(($day_length % 3600) / 60);
// Résultat de sortie
echo "Jour:$hours Heure $minutes minute\n";
?>
Paramètres : nous définissons la latitude et la longitude de New York (40,7128 ° N, 74,0060 ° W), ainsi que l'horodatage actuel.
Appelez Date_sunrise () et Date_sunset () : Ces deux fonctions renvoient respectivement les horodatages du lever du soleil et du coucher du soleil.
Calculez la durée diurne : en soustrayant l'horodatage du coucher du soleil de l'horodatage du lever du soleil, vous pouvez obtenir la durée diurne (en quelques secondes).
Durée de conversion : nous convertissons des secondes en heures et en minutes pour une sortie facile.
Supposons que lorsque vous exécutez ce code, la date actuelle est le 26 avril 2025 et que la durée diurne à New York peut être de 13 heures et 15 minutes. Les valeurs spécifiques varieront en fonction de la date et de l'emplacement géographique de la journée.
Si vous souhaitez calculer la durée diurne des autres emplacements, vous pouvez définir la valeur correspondante en fonction des différentes latitudes et longitudes. Par exemple, si vous souhaitez calculer la durée de jour à Pékin, vous pouvez ajuster la latitude et la longitude à:
$latitude = 39.9042; // Latitude de Pékin
$longitude = 116.4074; // Longitude à Pékin
Le même principe s'applique aux autres villes, il vous suffit de modifier la latitude et la longitude.
Les horodatages renvoyés par les fonctions date_sunset () et date_sunrise () sont basés sur UTC (heure universelle coordonnée), donc si vous devez afficher l'heure locale, assurez-vous de vous convertir en fonction du fuseau horaire.
Ces deux fonctions prennent également en charge plusieurs formats de retour, y compris les horodatages, les chaînes formatées, etc. Vous pouvez ajuster le deuxième paramètre de date_sunset () et date_sunrise () si nécessaire pour modifier le format de la valeur de retour.