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
(PHP 5, PHP 7, PHP 8)
date_sunrise — Retourne l'heure de lever du soleil pour un jour et un endroit donnés
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.
$timestamp
,$returnFormat
= SUNFUNCS_RET_STRING
,$latitude
= null
,$longitude
= null
,$zenith
= null
,$utcOffset
= null
date_sunrise() retourne l'heure de lever du soleil pour un jour
(spécifié par le paramètre timestamp
) et un endroit donnés.
timestamp
Le timestamp Unix du jour pour lequel l'heure de lever du soleil est donnée.
returnFormat
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
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
.
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.
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()
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.
|
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)
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
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
);
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