Uhrzeit überprüfen

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

  • Uhrzeit überprüfen

    Hi!

    Ich möchte überprüfen,ob eine Uhrzeit gültig ist. Laut Manual macht checkdate() das. Nur checkdate() kann das nicht! Ja, auch das Manual hat Fehler

    Sollte ich mir da jetzt selbst ne FKT schreiben, oder gibt es da was. Hab im Manual (und auch Suche hier & Google) nichts gefunden.

    Oder hat jemand ne Prüfung fertig? Ich brauche die Prüfung, weil ich keine DropDown Menüs nutzen will.

  • #2
    checkdate überprüft, ob ein Datum gültig ist oder nicht.

    in welchem Format liegt denn die Uhrzeit vor?
    23:59 -> preg_match('/((0|1)[0-9])|2[0-3]):[0-5][0-9]/', $zeit);
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Das Format ist richtig.

      Sowas in der Richtung hätte ich dann wohl auch schreiben müssen. Es gibt also kein FKT. Hätte mich auch gewundert. Bei Schaltjahren usw. macht das ja noch Sinn, für die Uhrzeit (die ja immer den selben Rahmen hat) macht es keinen Sinn.

      DANKE!

      Kommentar


      • #4
        checkdate -- Prüft eine gregorianische Datums- bzw. Zeitangabe auf Gültigkeit

        Also stimmt nicht ganz,checkt nur date. Ob ne zeit stimmt kannst du doch ganz einfach checken. splite auf und check ob stunden >=0 && <=24 sind .. unsw..
        -- Bat[e] / pixelcore.com

        Kommentar


        • #5
          Hast schon recht, das war mein aller erster gadanke, aber dann müsste ich noch sicher gehen, dass die führende 0 da ist.

          Mit dem Preg ist eigentlich schöner. Aber das haut nicht wirklich hin:

          Zeit: 06:00
          Datum OK

          Warning: Compilation failed: unmatched parentheses at offset 19 in xx on line 36

          PHP-Code:
          36    $fehler_zeit preg_match('/((0|1)[0-9])|2[0-3]):[0-5][0-9]/',$check[zeit]);
          37    if($fehler_zeit == 1) { echo "Zeit OK"; } else { $fehler[5] = 1; } 

          Kommentar


          • #6
            1. autsch ... klar: bei den 20er Stunden fehlt die öffnende Klammer

            2. es fehlen noch ^ und $ (sonst gibt 12345:54321 auch OK)

            '/^(0|1[0-9])|(2[0-3]):[0-5][0-9]$/'


            3. führende Null nicht zwingend -> ein Fragezeichen hinter die Null:
            '/^(0?|1[0-9])|(2[0-3]):[0-5][0-9]$/'

            4. falls Leerzeichen in der Zeit sein können:
            ein str_replace oder trim um die Variable.

            5. [0-9] kann mit \d abgekürzt werden:
            '/^(0?|1\\d)|(2[0-3]):[0-5]\\d$/'

            bin mir mit der Klammerung gerade nicht 100%ig sicher, zur Not:
            '/^(((0|1)?[0-9])|(2[0-3])):[0-5][0-9]$/'
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              Mit den Klammern hatte ich auch schon was versucht. Hatte leider weniger Erfolg als du.

              Mit deinen Beisoielen klapp es zwar ganz gut. Leider wird aber auch die Stunde "100" oder die Minute "000#" akzeptiert. Ich hab noch ein paar klammern geaddet. Sieht jetzt so ähnlich aus wie dein Klammernsalat.
              EDIT:
              Es ist genauso, wie dein Klammernsalat

              Kommentar


              • #8
                $cc=preg_match("/^([01]{1}[0-9]{1}|20|21|22|23):[0-5]{1}[0-9]{1}$/",trim($string1), $matches);

                echo "cc=$cc<br>";
                echo "matches[0]=$matches[0]<br>";
                der quantifier {1} kann allerdings weggelassen werden
                will man die führende 0s nicht zwingend, ist der quatifier {0,1}
                haut 100% hin (will ich doch hoffen )
                Zuletzt geändert von CHnuschti; 31.08.2002, 05:05.

                Kommentar


                • #9
                  Trotz meinen nicht all zu guten Expession Kenntnissen, würde ich doch sagen, das die Methode von Titus genauso sicher ist, oder. Aber wie gesagt, das ist nicht ganz mein Fall. Wenns nicht so ist, kläre mich bitte auf!!!

                  Und DANKE!

                  Kommentar


                  • #10
                    Jo. der letzte ist gleichwertig, aber in 1-5. fehlen Klammern, es wird nur 0, 10-24 gefunden, z.B. 07:23 nicht.
                    z.B. 3. '/^(0?|1[0-9])|(2[0-3]):[0-5][0-9]$/' müsste sein:
                    '/^(((0?|1)[0-9])|(2[0-3])):[0-5][0-9]$/'

                    Kommentar

                    Lädt...
                    X