Soyez le premier à donner votre avis sur cette source.
Vue 15 152 fois - Téléchargée 391 fois
<?php //* DATE du jour */ $date = date("d-m-Y"); $jour=date("d"); $mois=date("m"); //*ou //* pour une date specifique // $jour=02; // $mois=1; //* affiche resultat echo $date.'=> '.signe($jour,$mois); //* fonction function signe($jour,$mois) { $GLOBALS['zodiaque'] = array('Verseau','poissons','Bélier','Taureaux','Gémaux','Cancer','Lion','Vierge','Balance','Scorpion','Sagitaire','Capricorne'); //* signe $GLOBALS['periode']= array(20,19,21,20,20,22,23,23,23,23,22,21); //* limite fin periode pour chaque signe. $signe=''; $correction=0; //* valeur par défaut. $periode=$GLOBALS['periode'][($mois-1)]; //* prend la valeur du mois en cours if($jour < $periode) { if($mois==1){$correction=1; };//* Evite des erreurs de tableau si $mois est négatif ! $signe=$GLOBALS['zodiaque'][(($mois-2)+$correction)]; } else {$signe=$GLOBALS['zodiaque'][$mois-1];} return $signe; } //* fin fonction ?>
15 févr. 2013 à 13:33
15 févr. 2013 à 13:29
Il y a une autre erreur qui me semble pertinente.
Il y a un jour de décalage pour tous les signes.
Il faut ajouter le égal dans l'expression if ($mois_jour <= $cle)
Sinon, un sagittaire qui est né le 21-12-xxxx est Capricorne.
Merci pour le code.
stéph
5 févr. 2012 à 14:32
Et un petit return false; après le foreach n'aurait pas fait de mal. Après ces modifs, on peut dire qu'elle fonctionne parfaitement!
27 févr. 2010 à 21:35
27 févr. 2010 à 21:32
function Get_signe ($date_naissance)
{
$date_naissance; # une date au format AAAA-MM-JJ
$mois_jour = substr($date_naissance, 5, 2).substr($date_naissance, 8, 2);
$tab_date_signe = array(
'0120' => 'Capricorne',
'0218' => 'Verseau',
'0320' => 'Poisson',
'0420' => 'Belier',
'0521' => 'Taureau',
'0621' => 'Gemeaux',
'0722' => 'Cancer',
'0822' => 'Lion',
'0922' => 'Vierge
'1022' => 'Balance',
'1122' => 'Scorpion',
'1221' => 'Sagittaire',
'1300' => 'Capricorne',
);
foreach ($tab_date_signe as $cle => $valeur)
{
if ($mois_jour < $cle)
{
return $tab_signe[$valeur];
}
}
}
$signe = Get_signe('1983-01-13'); # renvoi Capricorne
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.