Position actuelle: Accueil> Derniers articles> Pourquoi la fonction date_sunset () renvoie-t-elle fausse? Quelle peut être la cause?

Pourquoi la fonction date_sunset () renvoie-t-elle fausse? Quelle peut être la cause?

M66 2025-06-23

Dans PHP, la fonction date_sunset () est utilisée pour calculer l'heure du coucher du soleil de l'heure et de la position spécifiées, renvoyant un horodatage ou une chaîne formatée. Cependant, dans certains cas, la fonction renvoie false , ce qui indique généralement qu'une erreur s'est produite ou un calcul a échoué. Cet article plongera dans plusieurs raisons courantes qui provoquent Date_sunset () pour retourner faux et comment éviter ces problèmes.

1. Les paramètres sont passés de manière incorrecte

L'utilisation standard de date_sunset () est la suivante:

 date_sunset(
    int $timestamp,
    int $returnFormat = 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 $gmtOffset = 0
): string|int|false

Si certains paramètres ne sont pas passés correctement, en particulier la latitude ( $ latitude ) et la longitude ( $ longitude ), la fonction peut retourner faux .

Exemple:

 // Exemple d'erreur:Latitude et la longitude ne sont pas définies
$sunset = date_sunset(time());
if ($sunset === false) {
    echo "Impossible de calculer l'heure du coucher du soleil";
}

Solution: assurez-vous que les valeurs valides de latitude et de longitude sont passées:

 $sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 31.7667, 35.2333, 90, 2);

2. Latitude ou longitude non valide

Si la latitude entrante n'est pas comprise entre -90 et 90, ou si la longitude n'est pas entre -180 et 180, la fonction ne sera pas gérée correctement et reviendra directement faux .

Exemple:

 // Latitude et longitude imprimées
$sunset = date_sunset(time(), SUNFUNCS_RET_STRING, 1234, 5678); // erreur

Assurez-vous que les paramètres respectent la véritable plage de coordonnées géographiques.

3. L'horodatage dépasse la plage de support

Le calcul interne utilisé par date_sunset () dépend de l'horodatage. Si l'horodatage dépasse la gamme d'entiers pris en charge par PHP (en particulier sur les systèmes 32 bits), FALS peut être retourné.

Exemple:

 // Dépasser 32 Gamme d'horodatage du système de bits
$sunset = date_sunset(99999999999, SUNFUNCS_RET_STRING, 40.7128, -74.0060);

Il est recommandé d'utiliser le temps () ou le strtotime raisonnable () pour générer un horodatage légitime.

4. L'élément de configuration n'est pas réglé correctement ( php.ini )

PHP permet de définir la latitude par défaut, la longitude et le zenith via le fichier php.ini . Si ces valeurs ne sont pas définies ou ne sont pas configurées de manière incorrecte, date_sunset () peut également ne pas fonctionner indirectement correctement.

Méthode d'inspection:

 echo ini_get('date.default_latitude');
echo ini_get('date.default_longitude');

Si la sortie est vide ou non numerique, ces paramètres doivent être passés manuellement dans le code.

5. La position provoque un phénomène de soleil invisible (nuit polaire)

Dans les régions polaires, le soleil ne se lève jamais ou ne se couche jamais à certaines périodes de l'année (comme la nuit polaire ou le jour du pôle Nord). Dans ce cas, date_sunset () peut également retourner faux car il n'y a pas de phénomène "coucher de soleil" ce jour-là.

Exemple:

 // Emplacement dans le pôle Nord,Pas de coucher de soleil par jour
$sunset = date_sunset(strtotime("2025-01-01"), SUNFUNCS_RET_STRING, 89.9, 135.0);

6. Erreur de réglage du fuseau horaire ou du décalage GMT

Le dernier paramètre $ gmtoffset contrôle le décalage de GMT (UTC) en heures. Si la valeur est définie de manière déraisonnable, elle peut également conduire à des résultats non satisfaits.

Par exemple, le temps de Pékin devrait être de +8,0 . Si vous êtes défini sur -8,0 , vous pouvez obtenir un résultat incorrect ou faux .

Conclusion

DATE_SUNSET () est une fonction de temps très pratique, mais elle dépend de plusieurs paramètres, et toute erreur peut entraîner le retour de faux . L'utilisation correcte doit inclure:

  • Passez clairement les paramètres clés tels que l'horodatage , la latitude et la longitude

  • Vérifiez s'il y a des problèmes avec la configuration pertinente dans php.ini

  • Évitez les appels dans des conditions géographiques ou de temps extrêmes