Fonction if...else pour une commande en ligne

Fonction if...else pour une commande en ligne - PHP - Programmation

Marsh Posté le 26-08-2012 à 13:18:54    

Bonjour,
 
Je me présente KoukSwisse, petite nouvelle sur le forum, en général je ne poste pas, car je trouve ce que je cherche avec mon ami google, mais la j'avoue que je suis dépassée...
 
Voilà mon problème: Je fais un site pour un snack qui vend des sandwichs (jusque là... pas de soucis...), le propriétaire du site et du snack aimerai que via un mail on passe une commande de sandwich (pas compliqué non plus)
 
Là où c'est plus chaud c'est qu'il ne veut par mail qu'entre 8h30 et 10h30 après les commande par mail sont clôturée.
 
Donc je me suis dit avec un petit script
 
"entre 8h30 et 10h30
 
affichage du mail
 
sinon
 
un commentaire qui dit "plus de commande en ligne""
 
Seulement je n'arrive pas à concrétisé ce script
 

Code :
  1. <?php
  2. (date_default_timezone_set("Europe/Brussels" ));
  3. $date = date("d-m-Y" );
  4. $heure = date("H:i" );
  5. Print("Nous sommes le $date et il est $heure" );
  6. if ( $heure > 8h30 && < 10h30 )
  7. {
  8.     echo'vous ne pouvez plus commander'
  9. }
  10. else {
  11.  echo'vous pouvez commander'
  12. }
  13. ?>


 
A votre avis je m'y prends mal? (oui probablement en fait)
Je suis vraiment perdue...
 
Merci d'avance de m'avoir lue
 
Bonne journée a tous
 
KoukSwisse

Reply

Marsh Posté le 26-08-2012 à 13:18:54   

Reply

Marsh Posté le 26-08-2012 à 18:55:37    

Non ce n'est pas bon car à mon avis "8h30" n'est pas reconnu par php comme étant une date valide et seulement deux dates valides peuvent être comparées.  
 
Il y a plusieurs manières pour procéder dans cette situation.  
Tu peux par exemple décortiquer l'heure actuelle et la comparer avec ton modèle. On aurait alors un script de la sorte :
 

Code :
  1. $heure = date('H');
  2. $minute = date('i');
  3. if ($heure >= 8 && $heure <= 10) {
  4.   if (($heure == 8 && $minute >= 30) || ($heure == 9) || ($heure == 10 && $minute <= 30)) {
  5.     echo 'vous pouvez commander';
  6.   }
  7.   else {
  8.     echo 'vous ne pouvez plus commander';
  9.   }
  10. }
  11. else {
  12.   echo 'vous ne pouvez plus commander';
  13. }


 
C'est très mal écris mais tu comprends l'idée.  
 
Sinon tu peux passer par une comparaison en secondes. C'est plus propre à mon avis.

Code :
  1. $ouverture = mktime( 8, 30 );
  2. $fermture = mktime( 10, 30);
  3. $current_time = mktime();
  4. if ($current_time >= $ouverture && $current_time <= $fermeture) {
  5.   echo 'vous pouvez commander';
  6. }
  7. else {
  8.    echo 'vous ne pouvez plus commander';
  9. }

Reply

Marsh Posté le 26-08-2012 à 19:02:32    

Un grand merci je vais tester ça et vous tiendrais au courent.
 
Voila ça fonctionne un très grand merci ^_^


Message édité par KoukSwisse le 26-08-2012 à 19:09:15
Reply

Marsh Posté le 26-08-2012 à 19:30:43    

De rien et bon courage pour la suite du projet.

Reply

Marsh Posté le 30-08-2012 à 15:24:02    

Pour info, la fonction strtotime() peut se révéler très pratique pour des calculs sur les dates/heures ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed