Code : Tout sélectionner
<?php
$time_h = date("H");
if ($time_h >= '08' AND $time_h <= '17') include "./maxima.php";
if ($time_h >= '18' AND $time_h <= '07') include "./minima.php";
?>
La fonction date te retourne une chaine de caractère, et non pas un nombre. Cela n'a pas de sens de tester >= sur une chaine de caractère.
De plus, ta 2ème instruction ne "pourrait" jamais être juste, comment être supérieure à 18 et inférieure à 7 ?
La solution consiste à tester ta chaine de caractère donné par date() avec une série d'autre chaine de caractère avec par exemple
in_array($time_h,array('07','08', ... );
et pas besoin de tester de 18 à 7, un else simple suffira
Sinon, utilise la fonction idate('H'),
Code : Tout sélectionner
<?php
$time_h = idate("H");
if ($time_h >= 8 AND $time_h <= 17) {include "./maxima.php";}
else {include "./minima.php";}
?>
En bonus, tu n'a vraiment pas besoin de passer par des includes, et le code posté ci -dessus (rappelé ici
<?php
$time_h = date("H");
if ($time_h >= '08' AND $time_h <= '17') $compteurligne = 0;
foreach($xml as $row) {
echo "";
echo "" ."".conversiontemperature($row[0])."";
echo "";
$compteurligne +=1;
if ($time_h >= '18' AND $time_h <= '07') $compteurligne = 0;
foreach($xml as $row) {
echo "";
echo "" ."".conversiontemperature($row[0])."";
echo "";
$compteurligne +=1;
}
}
?>
Présente pas mal de faute :
-le premier 'if' ne fera que instancier la variable compteurligne à 0
-quoiqu'il arrive avec ce if, le foreach sera éxecuté
raison : Après un if, seule la première instruction est incluse sauf si le bloc d'instruction est contenu entre accolade {}
-Les accolades du 1er foreach comprenne tous le codes qu'il y a en dessous, pluto que de s'arreter après l'incrémentation de compteurligne
-les lignes echo ""; n'ont pas de sens, tu demande à php de n'afficher rien autant ne rien lui demander.
-instancier compteurligne à 0 dans chaque if ne sert à rien puisque quelle que soit la valeur de time_h, tu lui donne la même valeur, autant ne l'instancier qu'une fois avant ton if / else
-tu affiche dans les deux cas row[0]
Ces remarques sont à but instructif uniquement
en prime voici le code que j'utiliserais
<?php
$time_h = idate("H");
$compteurligne = 0;
if ($time_h >= 8 AND $time_h <= 17) {
foreach($xml as $row) {
echo conversiontemperature($row[0]);
$compteurligne +=1;
}
}
else {
foreach($xml as $row) {
echo conversiontemperature($row[1]);
$compteurligne +=1;
}
}
?>