Position actuelle: Accueil> Derniers articles> date_sunset () et date_diff () Calculez la différence entre le coucher du soleil et l'heure actuelle

date_sunset () et date_diff () Calculez la différence entre le coucher du soleil et l'heure actuelle

M66 2025-06-05

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.

Exemple de code:

 <?php
// Définir le fuseau horaire
date_default_timezone_set('Asia/Shanghai');

// Obtenez l&#39;heure actuelle
$currentTime = new DateTime();

// Définir la date et l&#39;emplacement géographique(Prendre le temps de Pékin et l&#39;emplacement de Pékin comme exemples)
$timestamp = time();
$latitude = 39.9042;   // Latitude de Pékin
$longitude = 116.4074; // Longitude de Pékin

// Obtenez l&#39;heure du coucher du soleil aujourd&#39;hui(Le retour est un horodatage)
$sunsetTimestamp = date_sunset(
    $timestamp,
    SUNFUNCS_RET_TIMESTAMP,
    $latitude,
    $longitude,
    90,  // Angle d&#39;altitude,Généralement défini comme90Indique le coucher du soleil standard
    date("Z") / 3600  // Le nombre d&#39;heures dans le fuseau horaire actuel
);

// Convertir le temps de coucher de soleil en DateTime Objet
$sunsetTime = new DateTime();
$sunsetTime->setTimestamp($sunsetTimestamp);

// Calculez l&#39;écart entre l&#39;heure actuelle et l&#39;heure du coucher du soleil
$interval = date_diff($currentTime, $sunsetTime);

// Déterminez s&#39;il y a encore du temps ou s&#39;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。";
}
?>

Exemple de sortie:

 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。

Notes:

  1. 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;

  2. 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;

  3. Date_diff () Renvoie un objet DateInterval , où les propriétés H et I représentent les pièces heure et minute.