Message Variable Selon l'Heure Dans un Template

Petit nouveau ! | 4 Messages

01 juil. 2008, 15:17

Bonjour à Vous Tous,

Je suis une grande débutante en PHP (en vérité, je n'ai jamais rien programmé...).

J'ai besoin pour un template, j'aimerais avertir mes clientes des délais d'expédition de leur commande selon le jour de la semaine et l'heure :

Durant les jours de la semaine (Lundi à Vendredi) AVANT 14:45, afficher le message "Aujourd'hui"

Durant les jours de la semaine (Lundi à Vendredi) APRES 14:45, afficher le message "Demain"

Pour le Samedi et Dimanche, afficher le message "Lundi"

Quelqu'un pourrait-il me traduire ceci en code PHP ?

Code : Tout sélectionner

Si Jour de la Semaine Différent de Samedi OU Dimanche Et Heure Inférieure à 14:45 Alors echo 'Aujourd'hui' Sinon echo 'Demain' Autrement echo 'Lundi'
Voici ce qu'il me semble juste :

Code : Tout sélectionner

if {current weekday =! 6 or 0; if {current hour < 14:45; then echo'Ajourd/'hui";} else {echo'Demain';}} else {echo'Lundi';}
J'en suis très certainement loin, mais bon... C'est un début !

Merci de votre aide !


Molly

Mammouth du PHP | 1668 Messages

01 juil. 2008, 15:25

Bonjour,

Tout d'abbord, quel le système de template que vous utilisé ?
"À ceux qui poursuivent leurs rêves et se spécialisent dans l'impossible" Joseph Kong

10 ans de PHP, déjà.

"moi jtrouve que katagoto il déchire!" Nagol

Mammouth du PHP | 1353 Messages

01 juil. 2008, 15:27

Bonjour,

Ca n'est pas si loin que ça à dire vrai...

Regarde du coté des fonctions date() ou strftime() qui pourront donner les valeurs voulues pour current weekday et current hour

Sinon pour les boucles en php cela se fait de la facon suivante au niveau écriture :
if($a < $b) {
    echo "A plus petit que B";
    }
else echo "B plus petit que A";
(on met des { } si l'on a + qu'une ligne d'instructions ou tout le temps...)

Enfin pour avoir plusieurs conditions on utilise && pour le "et" et || pour le "ou"
if($a<$b && $b<$c) echo "A est le plus petit et C est le plus grand";
Voila pour les instructions "générales", je ne sais pas si cela marchera pour ce template...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Petit nouveau ! | 4 Messages

01 juil. 2008, 15:33

Bonjour,

Tout d'abbord, quel le système de template que vous utilisé ?
Bonjour,

Joomla

Je connais PHP net, si je viens vous poser la question ici, c'est que je ne comprends rien aux explications et exemples.

Désolé...


Molly

Petit nouveau ! | 4 Messages

01 juil. 2008, 23:15

Qu'est-ce qui ne va pas ?
<?php
$d=date("D");
$h=date("G");
if ($d=="Sat || Tue")
  echo "Lundi"; 
elseif ($h<"15")
  echo "Jour"; 
else
  echo "Demain";
?>
NB : J'ai mis Tue, puisque l'on est Mardi...

*****

Je n'avais pas mis les "double quotes" sur Sat et Tue !


OK, je pense avoir trouvé une solution pratique :

<?php 
$d=date("D"); 
$h=date("G"); 
if ($d=="Sat" || "Sun") 
  echo "Lundi";  
elseif ($h<"15") 
  echo "Jour";  
else 
  echo "Demain"; 
?>

Mammouth du PHP | 1353 Messages

02 juil. 2008, 09:34

Ca me parait bien, à l'execption d'une ligne :
if ($d=="Sat" || "Sun") 
Syntaxiquement cela n'est pas correct, il faut que tu répètes la condition après le || :
if ($d=="Sat" || $d=="Sun") 
sera mieux
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Petit nouveau ! | 4 Messages

03 juil. 2008, 05:26

Merci ! Enfin une réponse concrète !

De plus, mon serveur n'étant pas sur le même "timezone", j'ai rajouté la fonction date_default_timezone_set("europe/paris"); pour prendre en compte les horaires de France.

Le code est-il bon, ou peut-on l'améliorer ?
<?php
date_default_timezone_set("europe/paris");
$d=date("D");
$h=date("G");
$h=$h;
if ($d=="Sat" OR $d=="Sun")
  echo "Lundi";
elseif ($h<"15")
  echo "Jour";
else
  echo "Demain";
?>