(tuto) utilisation de la commande php date_sun_info

Salut,
Je ne fais ça que pour m’amuser;
Même si ça existe, c’est plus fun de le faire soi-même, non.
J’ai pris comme hypothèses que les dates des saisons étaient fixes (21 des mois concernés), ce qui, bien évidemment est faux, cela varie tous les ans d’un jour ou deux.
Comme je n’ai trouvé aucun algo qui donnait la date exacte des saisons quelque soit l’année, je les ai figées.
Ceci étant, le code ait facilement modifiable d’une année sur l’autre avec les bonnes dates.
La détermination de la saison tient compte également de l’hémisphère. Au cas où des australiens veuillent s’en servir :joy::joy::joy:.

Le code (sûrement améliorable) :

$lat = votre_latitude;
$long = votre_longitude;
$sun_info = date_sun_info(time(),$lat,$long);
$scenario->setData('leversoleil',date("Hi",$sun_info["sunrise"]));
$scenario->setData('couchersoleil',date("Hi",$sun_info["sunset"]));
$scenario->setData('zenith',date("Hi",$sun_info["transit"]));
$scenario->setData('levercivil',date("Hi",$sun_info["civil_twilight_begin"]));
$scenario->setData('couchercivil',date("Hi",$sun_info["civil_twilight_end"]));
$scenario->setData('levernautique',date("Hi",$sun_info["nautical_twilight_begin"]));
$scenario->setData('couchernautique',date("Hi",$sun_info["nautical_twilight_end"]));
$scenario->setData('leverastro',date("Hi",$sun_info["astronomical_twilight_begin"]));
$scenario->setData('coucherastro',date("Hi",$sun_info["astronomical_twilight_end"]));
$scenario->setData('dureejour',gmdate( "Hi",$sun_info["sunset"]-$sun_info["sunrise"]));
$scenario->setData('dureenuit',gmdate("Hi",24*60*60-($sun_info["sunset"]-$sun_info["sunrise"])));

$hemisphere = ($lat >= 0) ? 'nord' : 'sud';
$date = date('md');
if (($date >= '1221' && $date <= '1231') || ($date >= '0101' && $date < '0321')) {
	$saison = ($hemisphere == 'nord') ? 'Hiver' : 'Eté';
} elseif ($date >= '0321' && $date < '0621') {
	$saison = ($hemisphere == 'nord') ? 'Printemps' : 'Automne';
} elseif ($date >= '0621' && $date < '0921') {
	$saison = ($hemisphere == 'nord') ? 'Eté' : 'Hiver';
} else {
	$saison = ($hemisphere == 'nord') ? 'Automne' : 'Printemps';
}
$scenario->setData('Saison',$saison);

Le résultat :

Capture

1 « J'aime »