Zeit Bis nächster Termin?

martin-schulz

Mitglied
Moin Moin

Ich habe schon im Forum nach ähnlichen Beiträgen gesucht aber nichts gefunden.

Meine frage hat jemand ne ahnung oder kann mit weiterhelfen?
Ich schreibe grade an einem Kursplan für ein Fitnesscenter, nun will ich ein Script schreiben das die zeit angezeigt die bis zum nächsten kurz verbleibt.

die Kurse sehen wie folgt aus!

Montag (Vanessa)
18.30 - 19.30 Uhr Step
19.40 - 20.40 Uhr Lady - Fit
Dienstag
18.30 - 19.30 Uhr Step
Mittwoch (Christian)
18.30 - 19.30 Uhr Workout
19.40 - 20.40 Uhr Dance Aerobic/Fatburner
Donnerstag
18.30 - 19.30 Uhr Aerobic Power Mix


ich freue mich über jede hilfe.

lg Martin
 
hi na das beispiel was ich habe ist nicht doll aber warte ich poste es mal ;-)

PHP:
<?php

  $zeit = date("G"). "." .date("i");


      if((date("w") == 1) && ($zeit >= 18.30) && ($zeit <= 19.30)) {$a="momentan l&auml;ft der Kurs <b>\"Step\"</b>";}
  elseif((date("w") == 1) && ($zeit < 19.40)) {$a="Der n&auml;chste Kurs beginnt in <b>" . $ausgabe1= date("G")-19 . "</b> Stunden <b>" . $ausgabe2= date("i")-40 . "</b> Minuten";}
  elseif((date("w") == 1) && ($zeit >= 19.40) && ($zeit <= 20.40)) {$a="momentan l&auml;ft der Kurs <b>\"Lady Fit\"</b>";}

  elseif((date("w") == 2) && ($zeit < 18.30)) {$a="Der n&auml;chste Kurs beginnt in <b>" . $ausgabe1= date("G")-18 . "</b> Stunden <b>" . $ausgabe2= date("i")-30 . "</b> Minuten";}
  elseif((date("w") == 2) && ($zeit >= 18.30) && ($zeit <= 19.30)) {$a="momentan l&auml;ft der Kurs <b>\"Step\"</b>";}

  elseif((date("w") == 3) && ($zeit < 18.30)) {$a="Der n&auml;chste Kurs beginnt in <b>" . $ausgabe1= date("G")-18 . "</b> Stunden <b>" . $ausgabe2= date("i")-30 . "</b> Minuten";}
  elseif((date("w") == 3) && ($zeit >= 18.30) && ($zeit <= 19.30)) {$a="momentan l&auml;ft der Kurs <b>\"Workout\"</b>";}
  elseif((date("w") == 3) && ($zeit < 19.40)) {$a="Der n&auml;chste Kurs beginnt in <b>" . $ausgabe1= date("G")-19 . "</b> Stunden <b>" . $ausgabe2= date("i")-40 . "</b> Minuten";}
  elseif((date("w") == 3) && ($zeit >= 19.40) && ($zeit <= 20.40)) {$a="momentan l&auml;ft der Kurs <b>\"Dance Aerobic / Fatburner\"</b>";}

  elseif((date("w") == 4) && ($zeit < 18.30)) {$a="Der n&auml;chste Kurs beginnt in <b>" . $ausgabe1= date("G")-18 . "</b> Stunden <b>" . $ausgabe2= date("i")-30 . "</b> Minuten";}
  elseif((date("w") == 4) && ($zeit >= 18.30) && ($zeit <= 19.30)) {$a="momentan l&auml;ft der Kurs <b>\"Aerobic Power Mix\"</b>";}


  else {$a=" &nbsp ";} 
  
  
  echo $a;

?>
 
Zuletzt bearbeitet:
Hallo, bitte setze den Code erstmal in PHP-Tags und was funktioniert an dem Code nicht? Achso jetzt verstehe ich das, ich kümmer mich mal darum.
 
Zuletzt bearbeitet von einem Moderator:
Also meiner Meinung nach müsste man das Script ganz umschreiben denn du überschreibst die Variablen ja immer.
 
naja das macht ja eigentlich nicht wenn die 1 bedinung nicht erfüllt ist geht er weiter zur nächsten und brauch somit die variablen der schleife davor nicht mehr
 
Hallo!

Du machst bei $zeit aus der aktuellen Stunde und Minute einen String und anschliessend vergleichst Du diesen mit einer Zahl.
Ansich ja kein Problem, nur ist der Punkt für PHP ein Komma.
Mit anderen Worten, Du vergleichst ein Wort mit einer Zahl die 2 Nachkommastellen hat.
Dass dieses nicht zu einem Ergebins führt, dürfte einleuchtend sein. ;)
Du solltest die Zahl also als String kennzeichnen in dem Du sie in Anführungsstriche setzt ---> "18.30".

Tja, und nun kommt das eigentliche Problem.....
Du bekommst zwar ein Ergebnis angezeigt, jedoch ist es verkehrt.
Wenn ich meine Uhr auf 17:40 zurückstelle, müsste mir als Ergebnis eigentlich 0 Stunden und 50 Minuten ausgegeben werden, da der nächste Termin ja um 18:30 währe.
Als Ergebnis bekomme ich aber -1 Stunde und 10 Minuten ausgegeben.
Mit date() zu rechnen ist meiner Meinung nach alles andere als praktikabel.

Wo kommen die Termine denn her und in welcher Form sind sie gespeichert?
Sind es feste Termine die sich wöchentlich wiederholen oder sind sie mal so und mal so?

Gruss Dr Dau
 
Es sind feste Termine die sich Wöchentlich wiederholen.

Die Termine sind in keiner Datenbank gespeichert fals das deine frage war.

lg Marin
 
So, ich hoffe ich habe alles berücksichtigt.

Die Zeit von 0 Uhr bis zum 1. Kurs des jeweiligen Tages wird angezeigt.
Die Zeit nach dem letzten Kurs des jeweiligen Tages bis Mitternacht wird angezeigt.

Eine Besonderheit stellt hier der Donnerstag dar, hier wird nach dem letzten Kurs die Zeit bis zum 1. Kurs am Montag angezeigt.
Allerdings wird nur bis Mitternacht runtergezählt, da anschliessend der Freitg, Samstag und Sonntag jeweils zwischen 0 Uhr und Mitternacht runterzählen und die verbleibene Zeit bis zum 1. Kurs am Montag anzeigen.
Am Monatg geht es dann ab 0 Uhr wieder ganz normal weiter.

Der Code ist zwar alles andere als flexibel, müsste aber trotzdem erweiterbar sein.
Nur muss man dann höllisch aufpassen dass man keine Fehler macht. ;)
PHP:
<?php
$zeit = date("G"). "." .date("i");
 
// Montag
    // von Mitternacht bis zum 1. Kurs
    if((date("w") == "1") && ($zeit < "18.30")) {
        $next = mktime(18, 30, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
    // 1. Kurs
    elseif((date("w") == "1") && ($zeit >= "18.30") && ($zeit <= "19.30")) {$a="Momentan l&auml;uft der Kurs <b>\"Step\"</b>.";}
 
    // Pause zwischen 1. und 2. Kurs
    elseif((date("w") == "1") && ($zeit > "19.30") && ($zeit < "19.40")) {
        $next = mktime(19, 40, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
    // 2. Kurs
    elseif((date("w") == "1") && ($zeit >= "19.40") && ($zeit <= "20.40")) {$a="Momentan l&auml;uft der Kurs <b>\"Lady Fit\"</b>.";}
 
    // nach dem 2. Kurs bis Mitternacht
    elseif((date("w") == "1") && ($zeit > "20.40")) {
        $next = mktime(18, 30, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
// Dienstag
    // von Mitternacht bis zum 1. Kurs
    elseif((date("w") == "2") && ($zeit < "18.30")) {
        $next = mktime(18, 30, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
    // 1. Kurs
    elseif((date("w") == "2") && ($zeit >= "18.30") && ($zeit <= "19.30")) {$a="Momentan l&auml;uft der Kurs <b>\"Step\"</b>.";}
 
    // nach dem 1. Kurs bis Mitternacht
    elseif((date("w") == "2") && ($zeit > "19.30")) {
        $next = mktime(18, 30, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
// Mittwoch
    // von Mitternacht bis zum 1. Kurs
    elseif((date("w") == "3") && ($zeit < "18.30")) {
        $next = mktime(18, 30, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
    // 1. Kurs
    elseif((date("w") == "3") && ($zeit >= "18.30") && ($zeit <= "19.30")) {$a="Momentan l&auml;uft der Kurs <b>\"Workout\"</b>.";}
 
    // Pause zwischen 1. und 2. Kurs
    elseif((date("w") == "3") && ($zeit > "19.30") && ($zeit < "19.40")) {
        $next = mktime(19, 40, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
    // 2. Kurs
    elseif((date("w") == "3") && ($zeit >= "19.40") && ($zeit <= "20.40")) {$a="Momentan l&auml;uft der Kurs <b>\"Dance Aerobic / Fatburner\"</b>.";}
 
    // nach dem 2. Kurs bis Mitternacht
    elseif((date("w") == "3") && ($zeit > "20.40")) {
        $next = mktime(18, 30, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
// Donnerstag
    // von Mitternacht bis zum 1. Kurs
    elseif((date("w") == "4") && ($zeit < "18.30")) {
        $next = mktime(18, 30, 0, date("m"), date("d"), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
    // 1. Kurs
    elseif((date("w") == "4") && ($zeit >= "18.30") && ($zeit <= "19.30")) {$a="Momentan l&auml;uft der Kurs <b>\"Aerobic Power Mix\"</b>.";}
 
    // nach dem 1. Kurs bis Mitternacht
    elseif((date("w") == "4") && ($zeit > "19.30")) {
        $next_week = strtotime("Monday");
        $next = mktime(18, 30, 0, date("m"), date("d", $next_week), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
// Freitag, Samstag, Sonntag
    // Freitag 0 Uhr bis Sonntag 24 Uhr
    elseif((date("w") == "5") || (date("w") == "6") || (date("w") == "0")) {
        $next_week = strtotime("Monday");
        $next = mktime(18, 30, 0, date("m"), date("d", $next_week), date("Y"));
        $rest = $next-time();
        $days = floor($rest/24/60/60);
        $rest = $rest-($days*24*60*60);
        $hours = floor($rest/60/60);
        $rest = ($rest-($hours*60*60));
        $minutes = floor($rest/60);
        $day = (($days != 1)?" Tagen":" Tag");
        $hour = (($hours != 1)?" Stunden":" Stunde");
        $minute = (($minutes != 1)?" Minuten":" Minute");
        if($days > "0") {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $days . "</b> ".$day." <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        } else {
            $a="Der n&auml;chste Kurs beginnt in <b>" . $hours . "</b> ".$hour." <b>" . $minutes . "</b> ".$minute.".";
        }
    }
 
    else {$a=" &nbsp ";}
 
    echo $a;
?>
 
Zurück