date_sunrise

(PHP 5, PHP 7, PHP 8)

date_sunriseRetourne l'heure de lever du soleil pour un jour et un endroit donnés

Avertissement

Cette fonction est OBSOLÈTE depuis PHP 8.1.0. Dépendre de cette fonction est fortement déconseillé. L'utilisation de date_sun_info() est encouragé à la place.

Description

date_sunrise(
    int $timestamp,
    int $returnFormat = SUNFUNCS_RET_STRING,
    ?float $latitude = null,
    ?float $longitude = null,
    ?float $zenith = null,
    ?float $utcOffset = null
): string|int|float|false

date_sunrise() retourne l'heure de lever du soleil pour un jour (spécifié par le paramètre timestamp) et un endroit donnés.

Liste de paramètres

timestamp

Le timestamp Unix du jour pour lequel l'heure de lever du soleil est donnée.

returnFormat

Constantes pour le paramètre format
Constante Description Exemple
SUNFUNCS_RET_STRING Retourne le résultat en tant que chaîne de caractères 16:46
SUNFUNCS_RET_DOUBLE Retourne le résultat en tant que nombre décimal 16.78243132
SUNFUNCS_RET_TIMESTAMP Retourne le résultat en tant qu'entier (timestamp) 1095034606

latitude

Par défaut, c'est le Nord. Passez une valeur négative pour le Sud. Voir aussi date.default_latitude.

longitude

Par défaut, c'est l'Est. Passez une valeur négative pour l'Ouest. Voir aussi date.default_longitude.

zenith

zenith est l'angle entre le centre du soleil et la ligne perpendiculaire à la surface de la terre. Par défaut date.sunrise_zenith

Valeurs courantes de l'angle zenith
Angle Description
90°50' Levé du soleil: le point où le soleil devient visible.
96° Crépuscule civil: conventionnellement utilisé pour signifier le début de l'aube.
102° Crépuscule nautique: le point où l'horizon commence à être visible en mer.
108° Crépuscule astronomique: le point où le soleil commence à être la source de toute illumination.

utcOffset

Spécifié en heures. Le utcOffset est ignoré si returnFormat est SUNFUNCS_RET_TIMESTAMP.

Valeurs de retour

Retourne l'heure de lever du soleil dans le returnFormat spécifié en cas de succès ou false si une erreur survient. Une raison possible de l'échec est que le soleil ne se lève pas du tout, ce qui arrive à l'intérieur des cercles polaires pendant une partie de l'année.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un diagnostic de type E_WARNING si le fuseau horaire n'est pas valide. Voir aussi date_default_timezone_set()

Historique

Version Description
8.1.0 Cette fonction a été rendue obsolète en faveur de date_sun_info().
8.0.0 latitude, longitude, zenith et utcOffset sont désormais nullable.

Exemples

Exemple #1 Exemple avec date_sunrise()

<?php

/* Calcule l'heure du lever du soleil pour Lisbonne, Portugal
Latitude: 38.4 North
Longitude: 9 West
Zenith ~= 90
offset: +1 GMT
*/

echo date("D M d Y"). ', sunrise time : ' .date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1);

?>

Résultat de l'exemple ci-dessus est similaire à :

Mon Dec 20 2004, sunrise time : 08:54

Exemple #2 Pas de levé de soleil

<?php
$solstice
= strtotime('2017-12-21');
var_dump(date_sunrise($solstice, SUNFUNCS_RET_STRING, 69.245833, -53.537222));
?>

L'exemple ci-dessus va afficher :

bool(false)

Voir aussi

  • date_sun_info() - Retourne un tableau avec les informations sur le lever/coucher du soleil ainsi que le début et la fin de l'aube

add a note add a note

User Contributed Notes 3 notes

up
3
nomail at nospam dot com
5 years ago
maybe I am wrong, but I think

SUNFUNCS_RET_TIMESTAMP     return GMT(0) time

SUNFUNCS_RET_STRING     Return local time
SUNFUNCS_RET_DOUBLE     Return local time
up
4
scottix at gmail dot com
10 years ago
If you are working in multiple timezones getting the offset from a date is a little tricky because you need it in hours.

<?php

$time
= new DateTime('now', new DateTimeZone('America/Los_Angeles'));

date_sunrise(
$time->getTimestamp(),
SUNFUNCS_RET_TIMESTAMP,
38.4,
-
9,
90,
$time->getOffset() / 3600
);
up
-6
jonathanNO dot kuhnSPAM at gmailNOSPAM dot com
13 years ago
After some searching, I finally found a website that can calculate the sun's zenith. Just look up your city's lat/long (remember, west/south are negative even if it doesn't show where you look up the lat/long) and the time of sunrise/sunset and use this site:

http://solardat.uoregon.edu/cgi-bin/SolarPositionCalculator.cgi

You have to enter in the sunrise/sunset times separately, but it works.
San Diego is:
Lat: 32.73
Long: -117.17
Sunrise Z.: 90.7379
Sunset Z.: 90.8880
To Top