Dans PHP, la fonction date_sunset () peut être utilisée pour calculer l'heure du coucher du soleil sous une date et une latitude spécifiques. Parfois, nous devons également utiliser mktime () pour construire manuellement un horodatage pour gérer les différences de fuseau horaire de manière plus flexible ou effectuer d'autres calculs de temps. Cet article utilisera un exemple pratique pour expliquer comment utiliser correctement ces deux fonctions.
Généralement, Mktime () peut nous aider à générer rapidement des horodatages UNIX pour un certain jour et une certaine heure. Par exemple, si vous souhaitez générer un horodatage à 12h00 le 26 avril 2025, vous pouvez le faire:
<?php
$timestamp = mktime(12, 0, 0, 4, 26, 2025);
echo "L'horodatage généré manuellement est: " . $timestamp;
?>
L' horodatage généré peut être utilisé comme entrée à la date ultérieure_sunset () .
DATE_SUNSET () accepte un horodatage et calcule le temps de coucher du soleil de cette journée en fonction de la latitude et de la longitude spécifiées. L'utilisation de base est la suivante:
<?php
$latitude = 34.0522; // Par exemple, la latitude de Los Angeles
$longitude = -118.2437; // Longitude à Los Angeles
$sunset = date_sunset(
$timestamp,
SUNFUNCS_RET_STRING, // Retour au format,Voici le format de chaîne de retour
$latitude,
$longitude,
90, // Angle d'altitude,La valeur par défaut est90Degré
0 // GMTCompenser,Ici est défini comme0
);
echo "Temps de coucher(UTC)Oui: " . $sunset;
?>
Remarque: l'heure à laquelle vous obtenez est un temps UTC et n'est pas ajusté en fonction de votre fuseau horaire local.
Si vous souhaitez obtenir l'heure du coucher du soleil dans le fuseau horaire local, vous pouvez définir le décalage GMT correct dans date_sunset () ou le convertir manuellement. Par exemple, le temps de Pékin (huitième district est) correspond à GMT + 8:
<?php
$gmtOffset = 8; // East Huitième district
$sunset_local = date_sunset(
$timestamp,
SUNFUNCS_RET_STRING,
$latitude,
$longitude,
90,
$gmtOffset
);
echo "Temps de coucher(Heure locale)Oui: " . $sunset_local;
?>
De cette façon, vous pouvez obtenir le temps de coucher du soleil local directement, ce qui est très pratique!
Supposons que vous souhaitiez développer un widget qui étend automatiquement l'heure du coucher du soleil à un emplacement spécifique après avoir entré une date et lie vers une page d'affichage (comme une page d'informations météorologiques sur m66.net ). Vous pouvez faire ceci:
<?php
$date = '2025-04-26'; // La date entrée par l'utilisateur
list($year, $month, $day) = explode('-', $date);
// Créer un horodatage
$timestamp = mktime(12, 0, 0, $month, $day, $year);
// Configurer un emplacement géographique(Par exemple, Shanghai)
$latitude = 31.2304;
$longitude = 121.4737;
// 计算Temps de coucher(上海OuiEast Huitième district)
$sunset = date_sunset(
$timestamp,
SUNFUNCS_RET_STRING,
$latitude,
$longitude,
90,
8
);
// Résultat de sortie,Et joindre un lien
echo "exister {$date},上海的Temps de coucherOui: {$sunset}。<br>";
echo "Voir plus d'informations météorologiques,Veuillez visiter <a href='https://m66.net/weather'>m66.net/weather</a>";
?>
Dans cet exemple, nous avons non seulement correctement calculé le temps de coucher du soleil, mais nous avons également combiné le lien vers m66.net pour former une petite fonction qui est réellement disponible.
En combinant mktime () et date_sunset () , vous pouvez gérer de manière flexible les requêtes de temps de coucher de soleil pour n'importe quelle date et peut facilement vous adapter au fuseau horaire local. Qu'il s'agisse de développer des applications météorologiques, des outils de recommandation de voyage ou un simple affichage quotidien, cette technologie est très pratique.