8791 sujets

Développement web côté serveur, CMS

Bonjour,

je souhaite effectuer une action uniquement du lundi au vendredi entre certaines heures de la journée.
Donc j'ai pondu un truc comme ceci :

$hdebut = "0730"; // heure et minutes en attaché
$hfin = "1730";   // exemple : 8h30 = 0830; 23h12 = 2312
$hnow = date(G).date(i);
$jour = date(D);

if ($jour === "Mon" || "Tue" || "Wed" || "Thu" || "Fri"){
   if ($hdebut<$hnow){
     if ($hnow<$hfin){

       // Trucs à effectuer

     }
   }
}


Pour les heures ca fonctionne.
Mais cela ne fonctionne pas pour les jours, car l'action est effectuée même le samedi ou le dimanche, et je ne comprends pas pourquoi ?

Ou est la faute (ou la maladresse) ?

(PS : Je ne suis pas codeur de métier ni de formation, juste un bidouilleur Smiley cligne )
Modifié par Glabok (21 Nov 2010 - 17:08)
Salut,

Glabok a écrit :
if ($jour === "Mon" || "Tue" || "Wed" || "Thu" || "Fri"){
Ce code renverra toujours vrai (true). Il aurait fallut écrire
if ($jour == 'Mon' || $jour == 'Tue' || $jour == 'Wed' || $jour == 'Thu' || $jour == 'Fri') {
ou, plus simple encore :
$hdebut = 730;
$hfin = 1730;
$hnow = date(Gi);
$jour = date(D);
if ($jour <> 'Sat' && $jour <> 'Sun' && $hnow >= $hdebut && $hnow <= $hfin) {
	// Trucs à effectuer
}
Heyoan a écrit :
Il aurait fallut écrire
if ($jour == 'Mon' || $jour == 'Tue' || $jour == 'Wed' || $jour == 'Thu' || $jour == 'Fri') {


Un grand merci, donc j'ai mal utilisé le || .
Heyoan a écrit :

ou, plus simple encore :
$hdebut = 730;
$hfin = 1730;
$hnow = date(Gi);
$jour = date(D);
if ($jour &lt;&gt; 'Sat' &amp;&amp; $jour &lt;&gt; 'Sun' &amp;&amp; $hnow &gt;= $hdebut &amp;&amp; $hnow &lt;= $hfin) {
	// Trucs à effectuer
}

Je garde ce bout de code sous le coude histoire de le comprendre plus tard Smiley cligne .