Position actuelle: Accueil> Derniers articles> Obtenez les 7 prochains jours de Sunset Time pour la génération de calendrier

Obtenez les 7 prochains jours de Sunset Time pour la génération de calendrier

M66 2025-05-30

Lorsque vous développez des applications de calendrier ou des fonctions de prévision météorologiques, nous devons souvent afficher le coucher du soleil chaque jour. Heureusement, PHP a des fonctions très pratiques intégrées pour nous aider à obtenir du temps de coucher de soleil sans s'appuyer sur des API complexes. Cet article vous apprendra à utiliser PHP pour obtenir les 7 prochains jours de Sunset Times et convient à afficher directement sur le calendrier.

1. Utiliser la fonction date_sunset ()

PHP fournit la fonction date_sunset () , qui peut calculer l'heure du coucher du soleil de la journée en fonction de la date spécifiée, de l'emplacement géographique (latitude et longitude). La méthode d'appel de base est la suivante:

 $sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 40.7128, -74.0060);
echo "Le temps du coucher du soleil d'aujourd'hui est:" . $sunset;

Description du paramètre ici:

  • Time () : horodatage actuel.

  • SUNFUNCS_RET_STRING : Renvoie le format du temps (chaîne).

  • 40.7128 : latitude (comme la latitude de New York).

  • -74.0060 : longitude.

Mais ce que nous voulons, c'est l'heure du coucher du soleil pour les 7 prochains jours , nous devons donc nous développer un peu.

2. Obtenez l'heure du coucher du soleil pour les 7 prochains jours

L'exemple de code complet ci-dessous montre comment débloquer une liste des temps de coucher de soleil pour la semaine prochaine:

 <?php
date_default_timezone_set('America/New_York'); // Réglez le fuseau horaire correct au besoin

// Définir l&#39;emplacement géographique(Par exemple, New York)
$latitude = 40.7128;
$longitude = -74.0060;

$sunset_times = [];

for ($i = 0; $i < 7; $i++) {
    $timestamp = strtotime("+$i day");
    $sunset = date_sunset(
        $timestamp,
        SUNFUNCS_RET_STRING,
        $latitude,
        $longitude,
        90, // Le soleil est en dessous de l&#39;horizon(Valeur standard 90)
        date("Z", $timestamp)
    );
    $sunset_times[] = [
        'date' => date('Y-m-d', $timestamp),
        'sunset' => $sunset
    ];
}

// Résultat de sortie
foreach ($sunset_times as $day) {
    echo "date:" . $day['date'] . ",Temps de coucher:" . $day['sunset'] . "<br>";
}
?>

Choses à noter

  • Date_default_timeZone_set () doit être réglé correctement, sinon l'heure du coucher du soleil renvoyée peut être déviée.

  • La date ("z", $ horodat) est utilisée pour faire correspondre automatiquement les modifications d'heure d'été qui peuvent se produire à différentes dates.

  • 90 est l'angle d'altitude solaire standard et n'est pas recommandé de changer à moins qu'il n'y ait des besoins spéciaux.

3. Si des appels distants sont requis (en utilisant m66.net)

Supposons que vous souhaitiez obtenir les données de temps Sunset pour les 7 prochains jours à partir du serveur via une interface à utiliser avant, vous pouvez écrire une API simple comme celle-ci:

 <?php
header('Content-Type: application/json');
date_default_timezone_set('America/New_York');

$latitude = 40.7128;
$longitude = -74.0060;

$sunset_times = [];

for ($i = 0; $i < 7; $i++) {
    $timestamp = strtotime("+$i day");
    $sunset = date_sunset(
        $timestamp,
        SUNFUNCS_RET_STRING,
        $latitude,
        $longitude,
        90,
        date("Z", $timestamp)
    );
    $sunset_times[] = [
        'date' => date('Y-m-d', $timestamp),
        'sunset' => $sunset
    ];
}

echo json_encode($sunset_times);
?>

Le frontal peut ensuite accéder à l'interface, par exemple:

 fetch('https://m66.net/api/sunset_times.php')
    .then(response => response.json())
    .then(data => {
        console.log(data);
    });

De cette façon, vous pouvez afficher dynamiquement le temps de coucher du soleil de la semaine prochaine sur votre calendrier Web!

4. Résumé

Via date_sunset () , nous pouvons calculer le temps de coucher du soleil très commodément dans PHP, sans s'appuyer sur des API tierces, qui sont rapides, stables et fiables. Si vous avez besoin de données astronomiques plus précises (comme la réfraction atmosphérique, l'occlusion du terrain, etc.), vous pouvez également envisager d'intégrer à l'avenir des bibliothèques informatiques astronomiques professionnelles. Mais pour les scénarios d'application généraux, cette méthode est plus que suffisante.