[RESOLU] Changer de background en fonction de l'heure

Eléphanteau du PHP | 42 Messages

03 août 2014, 20:37

Non, en fait mon problème n'est pas résolu, donc, j'ai remarqué qu'en mettant:
$heure=date('H');
Mon background se met en mode "jour" mais ne change pas en mode "nuit".
$heure=('H'); 
Mon background se met en mode "nuit" mais ne change pas en mode "jour".

Voilà, donc je ne sais pas d'où ça peut venir !

Mammouth du PHP | 2278 Messages

03 août 2014, 21:05

Il faut faire afficher les valeurs de $heure pour savoir...
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 42 Messages

04 août 2014, 10:09

Hello ! donc, en utilisant
$heure=date('H');
print_r($heure); die();
On m'affiche une page blanche avec: 04
$heure=('H');
print_r($heure); die();
On m'affiche une page blanche avec: H

Voilà les deux messages d'erreurs qui me sont délivrés.

Mammouth du PHP | 2278 Messages

04 août 2014, 10:12

Essaie de mettre
$haure = date ("G");
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Eléphanteau du PHP | 42 Messages

04 août 2014, 11:59

Non, malheureusement, ça ne fonctionne toujours pas

Mammouth du PHP | 2278 Messages

04 août 2014, 12:31

<?PHP
date_default_timezone_set ("Pacific/Noumea"); //pour le test de nuit, pour le jour il sufit de commenter
$heure= intval(date("G")); 
var_dump($heure); //avant intval $heure est une chaine
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";

}
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

04 août 2014, 14:57

Il faut utiliser les options de la fonction date() en fonction du résultat que tu souhaites obtenir :

Code : Tout sélectionner

g Heure, au format 12h, sans les zéros initiaux 1 à 12 G Heure, au format 24h, sans les zéros initiaux 0 à 23 h Heure, au format 12h, avec les zéros initiaux 01 à 12 H Heure, au format 24h, avec les zéros initiaux 00 à 23
(voir la doc pour plus de détail sur les options)

Dans ton cas, c'est donc l'option G qui t'intéresse pour pouvoir la comparer aux heures du jour ou de la nuit. Tu considères qu'il fait nuit à partir de 20h jusqu'à 0h, puis qu'il fait toujours nuit de 0h jusqu'à 8h. Cela revient simplement à dire qu'il fait jour entre 8h et 20h. Tu peux ainsi simplifier ton code :
$heure= date('G');
if ( $heure>=8 && $heure<20) {
    echo "Jour !";
} else {
    echo "Nuit !";
}
Le résultat dépendra de l'heure du serveur.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...