Page 1 sur 2

Changer de background en fonction de l'heure

Posté : 02 août 2014, 11:41
par Flav88
Hello ! Je développe actuellement un site, et j'aimerais faire changer mon background en fonction de l'heure. J'ai donc essayé plusieurs scripts, en disant que $heure > 9 && $heure > 20 echo'background..';. Mais il ne m'affichais que le css nuit, sans revenir à celui du jour.
<?php
		$heure=date("H"); 
		if($heure>20 && $heure>21 && $heure>22 && $heure>23 && $heure>0 && $heure>1 && $heure>2 && $heure>3 && $heure>4 && $heure>5 && $heure>6 && $heure>7 && $heure>8){

			echo'<style>body{background: url(./images/backnuit.gif);background-attachment:fixed;}</style>';

                }else{

                if($heure>9 && $heure>10 && $heure>11 && $heure>12 && $heure>13 && $heure>14 && $heure>15 && $heure>16 && $heure>17 && $heure>18 && $heure>19 && $heure>20){

			echo'<style>body{background: url(./images/backjour.gif);background-attachment:fixed;}</style>';

                        }
                }

?>
Voilà le script que j'ai bidouillé, mais il ne m'affiche pas les backgrounds, quelqu'un saurait m'aider s'il vous plait ?

Re: Changer de background en fonction de l'heure

Posté : 02 août 2014, 13:03
par sirakawa
La condition est beaucoup plus simple:
Je ne cherche même pas à démêler la condition aberrante que tu utilises/
<?PHP
$heure= 8; 
if ( ($heure>20 && $heure<=23) or (($heure >=0) and ($heure <8)))
/*La condition est nuit  (heure > 20 et heure <=23) ou (heure > 0 et heure < 8) jour dans les autres cas*/
{
print "on est nuit";
}else
{
print "on est jour";

}
?>

Re: Changer de background en fonction de l'heure

Posté : 02 août 2014, 14:03
par Flav88
Bien, merci beaucoup de ton aide, mais je n'ai pas compris mon erreur, quand tu parles d'une fonction "abérante", pourquoi tu la juges ainsi, tu peux développer, me dire ce qu'il ne va pas dans ma fonction, cela me permettrait de comprendre mon erreur, et de ne pas la refaire ! :)

Re: Changer de background en fonction de l'heure

Posté : 02 août 2014, 15:02
par sirakawa
Avant d'accumuler les and (ou les &&) il faut définir clairement sur papier les conditions
la nuit c'est entre (20h et 24 ! ((h > 20) and (h <=24))
ou entre 0 h et 8 h ((h >=0) and (h <8))
ca nous fait donc un if (conition)
Le jour c'est le reste du temps (quand on n'est pas le jour on est la nuit)
if (condition nuit)
{

}
else //inutile de mettre une condition
{
traitement jour
}

Tu pourrais aussi chercher s'il n'est pas encore plus simple de faire
if (condition jour)
{

}
else
{
}

Re: Changer de background en fonction de l'heure

Posté : 02 août 2014, 15:47
par Flav88
D'accord, donc le problème de mon code, c'est que je fais des && et des if en masse, alors que j'aurais juste à définir entre x et x valeurs plutôt de faire les x valeurs une par une ? Donc ça me donne un code trop lourd, et je peux faire plus simple (si j'ai bien compris).

Re: Changer de background en fonction de l'heure

Posté : 02 août 2014, 15:59
par sirakawa
C'est cela même:
Il faut se souvenir de quelques notions d'arithmétique:
Pour q'une valeur V soit comprise entre a et b (a exclu et b inclus) :
if (( V > a) and (v <= b)) (je me sers seulement de and et or mais il faut parenthéser davantage et correctement; mais ca permet d bien voir les groupes de conditions)
DE même
Si (a >b)
{
}
else ici forcément a <= b et test inutile
{
}

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 11:39
par Flav88
Bonjour ! je viens de constater ce matin que mon background n'avait pas changé en "jour" :( alors hier soir il est bien passé en "nuit" mais ne s'est pas remis en jour ce matin ! :(
<?php
$heure= ('H'); 
if ( ($heure>20 and $heure<=23) or ( ($heure >=0) and ($heure <8)))
{
print "<style>body{background: url(http://habbotaku.shost.ca/css/images/backnuit.gif);background-attachment:fixed;}</style>";
}else
{
print "<style>body{background: url(http://habbotaku.shost.ca/css/images/backjour.gif);background-attachment:fixed;}</style>";

}
?>

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 12:57
par sirakawa
Regarde dans le code source de la page HTML
IL doit falloir que la page soit rechargée complètement.

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 14:33
par Flav88
Hum, non ça marche vraiment pas O.o

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 15:52
par sirakawa
$heure= ('H');
print_r($heure); die(); donne quoi?

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 17:36
par Flav88
Alors, là j'ai une page blanche, avec un "H" de marqué.

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 19:07
par sirakawa
$heure= ('H');
print_r($heure); die(); donne quoi?

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 19:09
par sirakawa
Il faudrit peut-être revenir à:
$heure=date("H");

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 19:23
par Flav88
Effectivement, tout a l'air de fonctionner, je te remercies ! :)

Re: Changer de background en fonction de l'heure

Posté : 03 août 2014, 19:34
par sirakawa
Si c'est résolu, utilise le bouton hareng saur pour le marquer