Se connecter / S'enregistrer

Résolu Modifier variable entre 2 dates

Solutions (3)
Tags :
  • Syntaxe
  • Script
  • Time
  • Programmation
|
Bonjour,

J'ai un petit soucis avec mon script

  1. $time = time();
  2. $fin = $time + 6300;
  3. if ($rep['date'] > $time) {
  4. $statut = "Bientôt";
  5. } else {
  6. if ($rep['date'] > $time && $rep['date'] < $fin) {
  7. $statut = "En cours";
  8. } else {
  9. if ($rep['date'] < $fin) {
  10. $statut = "Terminé";
  11. }}}


Bientot et Terminé fonctionne mais pas En cours, je crois que ma syntaxe est pas bonne, ce que je voudrai c'est si $rep['date'] est plus grand que time et plus petit que fin... $statut soit en cours...
Contenus similaires
Meilleure solution
partage
|
Bonjour
allstar27 a dit :
  1. $time = time();
  2. $fin = $time + 6300;
  3. if ($rep['date'] > $time) {
  4. $statut = "Bientôt";
  5. } else {
  6. if ($rep['date'] > $time && $rep['date'] < $fin) {
  7. $statut = "En cours";
  8. } else {
  9. if ($rep['date'] < $fin) {
  10. $statut = "Terminé";
  11. }}}


Tout d'abord, tu devrais utiliser elseif plutôt que tes imbrications.
Ensuite, à quoi correspond $rep['date'] ? Si c'est (par exemple) l'heure de démarrage d'un jeu qui doit durer 1h, tu ne travailles pas sur les bonnes données: c'est $rep['date'] qui doit être incrémenté de 3600 pour avoir l'heure de fin. Et donc on obtient:
  1. <?php
  2. $time = time();
  3. $fin = $rep['date'] + 3600;
  4. if ($time<$rep['date']) {
  5. // Ce n'est pas encore l'heure du jeu
  6. $statut = "Bientôt";
  7. } elseif ($time > $fin) {
  8. // Le jeu est terminé
  9. $statut = "Terminé;
  10. } else {
  11. // Ni l'un ni l'autre, donc en cours
  12. $statut = "En cours";
  13. }
  14. ?>
  • Commenter cette solution |
Score
0
òh
òi
|
Ah ca fonctionne, merci à vous 2!!
  • Commenter cette réponse |
Score
0
òh
òi
|
Lu
Tu fais tes test dans le mauvais sens:
D'abord tu dois faire if ($rep['date'] > $time && $rep['date'] < $fin)
puis après les deux autres.
Le programme passe dans le test en ligne 3: si $rep>$time est faux il n'y a aucune chance que l'expression if ($rep['date'] > $time && $rep['date'] < $fin) soit vérifié
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS