Dans PHP, date_sunrise () et date_sunset () sont deux fonctions très pratiques qui peuvent calculer les heures de soleil et de coucher de soleil de la journée en fonction de la date spécifiée et des coordonnées géographiques. En combinant ces deux fonctions, nous pouvons calculer très facilement la durée totale de la journée.
Ceci est très précieux pour les scénarios d'application qui nécessitent un ajustement de la logique commerciale en fonction de la longueur du jour, telles que la commutation d'éclairage automatique, les fermes intelligentes, la gestion des activités de plein air et d'autres systèmes.
date_sunrise(int $timestamp, int $format = SUNFUNCS_RET_STRING, float $latitude = ini_get("date.default_latitude"), float $longitude = ini_get("date.default_longitude"), float $zenith = ini_get("date.sunrise_zenith"), float $gmt_offset = 0): string|int|float|false
date_sunset(int $timestamp, int $format = SUNFUNCS_RET_STRING, float $latitude = ini_get("date.default_latitude"), float $longitude = ini_get("date.default_longitude"), float $zenith = ini_get("date.sunset_zenith"), float $gmt_offset = 0): string|int|float|false
Utilisons un exemple de béton pour illustrer comment calculer la journée:
Date: date actuelle
Coordonnées: Pékin City (latitude 39.9042, longitude 116.4074)
CHAMEN: East Huitième district (UTC + 8)
<?php
date_default_timezone_set('Asia/Shanghai');
$timestamp = time();
$latitude = 39.9042;
$longitude = 116.4074;
$gmt_offset = 8;
// Obtenez des temps de soleil et de coucher de soleil(par UNIX Retour dans le formulaire d'horodatage)
$sunrise = date_sunrise($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90, $gmt_offset);
$sunset = date_sunset($timestamp, SUNFUNCS_RET_TIMESTAMP, $latitude, $longitude, 90, $gmt_offset);
if ($sunrise !== false && $sunset !== false) {
$dayLength = $sunset - $sunrise;
// Convertir au format heure et minute
$hours = floor($dayLength / 3600);
$minutes = floor(($dayLength % 3600) / 60);
echo "Temps de soleil: " . date("H:i:s", $sunrise) . PHP_EOL;
echo "Temps de coucher: " . date("H:i:s", $sunset) . PHP_EOL;
echo "Jour: {$hours}Heure{$minutes}minute" . PHP_EOL;
} else {
echo "无法计算日出或Temps de coucher。Veuillez vérifier les coordonnées ou les paramètres de date。";
}
L'angle zenith utilisé par date_sunrise () et date_sunset () sont à 90 degrés par défaut. Cela signifie que le temps de soleil et de coucher de soleil est calculé à partir de la position où l'horizon vient de se lever ou de tomber. Il peut être ajusté au besoin.
Le décalage du fuseau horaire ( $ gmt_offset ) doit être réglé correctement pour s'assurer que le temps de sortie est conforme à l'heure locale.
Si le retour revenu , cela est généralement dû à des circonstances particulières telles que le cadre de coordonnées anormales, le jour extrême ou la nuit extrême.
Cette méthode de calcul peut être facilement intégrée dans n'importe quel système sensible au temps, tel que:
Système d'éclairage automatique (comme le contrôleur domestique intelligent)
Interface API astronomique, comme https://api.gitbox.net/astro/dayLength?lat=39.9&lon=116.4
Widget météo extérieur pour montrer les changements de jour en temps réel
En utilisant ces fonctions solaires fournies par PHP, nous pouvons obtenir avec précision des données de temps liées à l'angle d'altitude solaire sans s'appuyer sur des services externes, fournissant au système une base plus intelligente pour le jugement.