Bonjour !
J'utilise la librairie SunCalc (https://github.com/gregseth/suncalc-php) pour afficher les phases de la lune pendant une semaine. J'obtiens une série de valeur que j’arrondis en fraction de 0, 0.25, 0.5 et 0.75. (https://stackoverflow.com/questions/49036979/moon-phase-with-svg-graphics-in-node-js). Problème : les valeurs obtenues ne sont pas les bonnes, j'obtiens par exemple :
? Lundi 21
? Lundi 28 *
? Mardi 5 *
? Mercredi 13 *
? Mercredi 20 *
? Mercredi 27 *
? Jeudi 7 *
? Jeudi 14
* = valeurs incorrects
Au lieu de :
? Lundi 21
? Dimanche 27
? Lundi 4
? Mardi 12
? Mardi 19
? Mardi 26
? Mercredi 6
? Jeudi 14
(source : https://www.timeanddate.com/moon/phases/)
Savez-vous d'où peut venir l'erreur d'affichage ? Merci d'avance pour vos propositions !
Modifié par Oziris (19 Jan 2019 - 14:33)
J'utilise la librairie SunCalc (https://github.com/gregseth/suncalc-php) pour afficher les phases de la lune pendant une semaine. J'obtiens une série de valeur que j’arrondis en fraction de 0, 0.25, 0.5 et 0.75. (https://stackoverflow.com/questions/49036979/moon-phase-with-svg-graphics-in-node-js). Problème : les valeurs obtenues ne sont pas les bonnes, j'obtiens par exemple :
? Lundi 21
? Lundi 28 *
? Mardi 5 *
? Mercredi 13 *
? Mercredi 20 *
? Mercredi 27 *
? Jeudi 7 *
? Jeudi 14
* = valeurs incorrects
Au lieu de :
? Lundi 21
? Dimanche 27
? Lundi 4
? Mardi 12
? Mardi 19
? Mardi 26
? Mercredi 6
? Jeudi 14
(source : https://www.timeanddate.com/moon/phases/)
$date = new DateTime();
for( $days = 60; $days--; ) {
setlocale(LC_TIME, "fr_FR");
$datej = $date->modify( '+1 days' )->getTimestamp();
$datejourX = strftime("%A %e", $datej);
// initialise library class with date and coordinates today's sunlight times for Paris
$sc = new SunCalc($date, 43.89, 4.08);
// format sunrise time from the DateTime object
$sunTimes = $sc->getSunTimes();
$sunriseStr = $sunTimes['sunrise']->format('H:i');
// get position of the sun (azimuth and altitude) at today's sunrise
$sunrisePos = $sc->getMoonIllumination($sunTimes['sunrise']);
$sunp = $sunrisePos['phase'];
//https://stackoverflow.com/questions/49036979/moon-phase-with-svg-graphics-in-node-js
$datejour3 = $sunp * 28;
$datejour2 = floor($datejour3);
$datejour = $datejour2 / 28;
if ($datejour == 0) {
echo "? " . $datejourX . '<br>';
} elseif ($datejour == 0.25) {
echo "? ". $datejourX . '<br>';
} elseif ($datejour == 0.5) {
echo "? ". $datejourX . '<br>';
} elseif ($datejour == 0.75) {
echo "? ". $datejourX . '<br>';
}
}
Savez-vous d'où peut venir l'erreur d'affichage ? Merci d'avance pour vos propositions !
Modifié par Oziris (19 Jan 2019 - 14:33)