Dans PHP, date_sunset () est une fonction utilisée pour obtenir l'heure du coucher du soleil pour une date spécifique et une emplacement géographique, tandis que Date_diff () peut calculer l'intervalle de temps entre deux dates et heures. En combinant ces deux fonctions, nous pouvons facilement dessiner "combien de temps sera-t-il avant le coucher du soleil aujourd'hui".
Ci-dessous, nous utilisons un exemple simple pour montrer comment implémenter cette fonction.
<?php
// Définir le fuseau horaire
date_default_timezone_set('Asia/Shanghai');
// Obtenez l'heure actuelle
$currentTime = new DateTime();
// Définir la date et l'emplacement géographique(Prendre le temps de Pékin et l'emplacement de Pékin comme exemples)
$timestamp = time();
$latitude = 39.9042; // Latitude de Pékin
$longitude = 116.4074; // Longitude de Pékin
// Obtenez l'heure du coucher du soleil aujourd'hui(Le retour est un horodatage)
$sunsetTimestamp = date_sunset(
$timestamp,
SUNFUNCS_RET_TIMESTAMP,
$latitude,
$longitude,
90, // Angle d'altitude,Généralement défini comme90Indique le coucher du soleil standard
date("Z") / 3600 // Le nombre d'heures dans le fuseau horaire actuel
);
// Convertir le temps de coucher de soleil en DateTime Objet
$sunsetTime = new DateTime();
$sunsetTime->setTimestamp($sunsetTimestamp);
// Calculez l'écart entre l'heure actuelle et l'heure du coucher du soleil
$interval = date_diff($currentTime, $sunsetTime);
// Déterminez s'il y a encore du temps ou s'il a le coucher du soleil
if ($sunsetTime > $currentTime) {
echo "Il y a encore du coucher du soleil " . $interval->h . " Heure " . $interval->i . " minute。";
} else {
echo "Le coucher du soleil est passé " . $interval->h . " Heure " . $interval->i . " minute。";
}
?>
Il y a encore du coucher du soleil 2 Heure 34 minute。
Ou si c'est déjà coucher de soleil:
Le coucher du soleil est passé 1 Heure 12 minute。
DATE_SUNSET () doit fournir des paramètres de latitude et de longitude, et les valeurs dans différentes régions affecteront les résultats du calcul;
La date ("Z") / 3600 dans la fonction est utilisée pour obtenir dynamiquement le décalage du fuseau horaire du serveur actuel pour assurer les résultats précis;
Date_diff () Renvoie un objet DateInterval , où les propriétés H et I représentent les pièces heure et minute.