Ankündigung

Einklappen
Keine Ankündigung bisher.

if (serverzeit <= Anfangszeit (H:m:s) && serverzeit >= Endzeit (H:m:s))

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • if (serverzeit <= Anfangszeit (H:m:s) && serverzeit >= Endzeit (H:m:s))

    Hi Leute,

    ich steh momentan vor nem großen Fragezeichen...

    Ich möchte in einer if-Abfrage abfragen, ob die aktuelle Server(Uhr)zeit größer ist/ ob es später ist, als eine vorgegebene UHRzeit.

    Da das ganze aber ohne fixes Datum sein soll, kann ich time() und mktime() nicht verwenden oder?

    Da ich php-Anfänger bin, habe ich damit kenie Erfahrung.

    Kann mir jemand sagen, wie ich das lösen kann?

    Das ganze soll so aussehen...

    if (serverzeit <= Anfangszeit (H:m:s) && serverzeit >= Endzeit (H:m:s))

    Danke im Voraus,
    Lg
    Paeisi


  • #2
    Prüf einfach die Uhrzeit mit Hilfe von [MAN]date[/MAN].
    Entweder du vergleichst dann die Strings miteinander (Bitte nicht < oder > nehmen :P) oder du nutzt [MAN]mktime[/MAN] um jeweils Unix-Timestamps zu bekommen die du dann mit < und > vergleichen kannst.
    sigpic

    Kommentar


    • #3
      Zitat von Frank Beitrag anzeigen
      Entweder du vergleichst dann die Strings miteinander (Bitte nicht < oder > nehmen :P)
      Warum nicht?

      Wenn die Daten in den Strings so aufgebaut sind, dass sie von links nach rechts „sortiert“ sind - und bei einer H:i:s-Zeitformatierung ist das der Fall - dann kann man durchaus < und > für entsprechende Vergleiche verwenden.

      Kommentar


      • #4
        Da das ganze aber ohne fixes Datum sein soll, kann ich time() und mktime() nicht verwenden oder?
        Doch.
        Übergibst Du denn die Uhrzeit mit GET? Und in welchem Format?
        Competence-Center -> Enjoy the Informatrix
        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

        Kommentar


        • #5
          Danke erstmal für die Antworten.

          @Arne: ich übergebe die Urzeiten garnicht. Sie sind festgelegt. Es geht bei der ganzen Geschichte um Öffnungszeiten.

          Habe jetzt mal mein Hirn angestrengt und dabei ist sogar ne relativ "okay"e Lösung bei rausgekommen:

          PHP-Code:
          $wota date("w");
          $zeit date("His");

          if ((
          $wota == "2" && $zeit >= "170000" && $zeit <= "235959") || ($wota == "3" && $zeit == "000000") || ($wota == "3" && $zeit >= "170000" && $zeit <= "235959") || ($wota == "4" && $zeit == "000000") || ($wota == "4" && $zeit >= "170000" && $zeit <= "235959") || ($wota == "5" && $zeit == "000000")) 
          Thema gelöst, danke für die Hilfe!

          wer sich das Ergebnis angucken will: http://s323602999.online.de/kurtinis/opening_times.php oder http://kurtinis.com/öffnungszeiten/

          LG
          Paeisi

          Kommentar


          • #6
            Habe jetzt mal mein Hirn angestrengt und dabei ist sogar ne relativ "okay"e Lösung bei rausgekommen
            Naja, bei Zeiten solltest Du Dein Hirn nochmal anstrengen und aus dem "okay" zumindest ein "gut" machen.
            Sieht etwas abenteuerlich aus das IF-Konstrukt...

            EDIT:
            Öhm... Dafür war das gedacht???
            Das' aber umständlich dann...
            Competence-Center -> Enjoy the Informatrix
            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

            Kommentar


            • #7
              Ja umständlich und abenteuerlich auf jeden Fall, aber da ich nicht das nötige Wissen für eine ordentlichere Variante habe, muss das wohl so bleiben.

              Aber es funktioniert ja, wie es soll.

              Kommentar


              • #8
                Wenn Du zufrieden bist ist das ok...
                Vielleicht gehst da ja nochmal zu Übungszwecken ran, wenn Du mal Zeit hast...
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Könntest mal probieren das in eine funktion auszulagern, wäre dann auch an anderen Stellen wiederverwendbar.
                  Vielleicht sowas in der Art:

                  PHP-Code:
                  <?php
                  $wota 
                  date("w");

                  function 
                  checkOpeningTime($dayOfWeek) {
                      
                  $currentTime date("His");
                      
                      switch (
                  $dayOfWeek) {
                          case 
                  2:
                          case 
                  3:
                          case 
                  4:
                          case 
                  5:
                              if (
                  $currentTime >= "170000" && $currentTime <= "235959") {
                                  return 
                  true;
                              }
                              return 
                  false;
                              break;

                          
                          default:
                          case 
                  1:
                              return 
                  false;
                              break;
                      }
                  }
                  $res checkOpeningTime($wota);
                  "My software never has bugs, it just develops random features."
                  "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                  Kommentar


                  • #10
                    Die switch-Variante hätte ich auch vorgeschlagen. Ist auf jeden Fall deutlich übersichtlicher!
                    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                    Kommentar


                    • #11
                      Ich glaub' jetzt steh' ich auf'm Schlauch...
                      Warum das Ganze, nur um die Öffnungszeiten darzustellen???

                      Wenn wenigstens ein Satz, im Sinne von: "Unser Lokal ist in diesem Moment geöffnet." da wäre,
                      würde ich den Aufwand verstehen, aber so...

                      Wer klärt mich bitte auf?
                      Competence-Center -> Enjoy the Informatrix
                      PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                      Kommentar


                      • #12
                        Die verfeinerung fehlt ja noch. Ich überleg schon seit ner Stunde, was ich da hin schreiben soll

                        Habe ich es richtig verstanden, dass switch eine Variante zur Verkürzung solch langer if-Aufsätze sein kann?

                        Kommentar


                        • #13
                          In der Regel ist ein Switch-Case Statement länger als eine If-Anweisung. Aber diese ist in meinen Augen doch deutlich übersichtlicher.
                          "My software never has bugs, it just develops random features."
                          "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                          Kommentar


                          • #14
                            Ja da muss ich dir Recht geben. Ich kannte das bisher noch garnicht.

                            Kommentar


                            • #15
                              Man kann es auch ein bisschen aufteilen, wenn einem die IF-Bedingung zu lang wird.
                              PHP-Code:
                              $wota_check = ($wota >= && $wota <= 5);
                              $zeit_check = ($zeit >= 170000 && $zeit <= 235959);

                              if(
                              $wota_check && $zeit_check)
                              {
                                  
                              // ...

                              Kommentar

                              Lädt...
                              X