Auge: Dropdown mit Uhrzeiten

Beitrag lesen

Hallo

Mit JS kannst du eine Vorprüfung machen, die eine Fehleingabe (Plausibilität und Format) moniert. Vor dem speichern auf dem Server wird bei der Verarbeitung eine Prüfung mit PHP durchgeführt.

Ich hab eine kleine Funktion im Internet gefunden

function check_time($time)
{
  $parts = explode(':',$time);
  if (
        count($parts) !== 2 ||
        !is_numeric($parts[0])||
        !is_numeric($parts[1])||
        $parts[0]    <  0 ||
        $parts[0]    > 24 ||
        $parts[1]    <  0 ||
        $parts[1]    > 60
     )return FALSE;
  return TRUE;
}

  
Laut der Funktion ist auch 24:12 oder gar 24:60 ein gültiger Wert. Begrenze den Bereich auf 0-23 bzw. 0-59.  
  

> Diese scheint recht gut zu funktionieren ABER wenn ich 1:44 eingebe sagt die Ausgabe gültig! OK, diese Uhrzeit gibt es auch …  
  
Gültig ist sie in der Realität und laut der Prüfroutine.  
  

> … ABER ich brauch eine 0 davor.  
  
Führende Nullen kannst du $parts[0] mit [str_pad](http://www.php.net/str-pad) voranstellen.  
  
Allerdings ist die Prüfung an dieser Stelle ungünstig aufgebaut. Die Uhrzeit wird in der Funktion auseinander genommen, das Setzen der führenden 0 gehört aber nicht in die Funktion.  
  
~~~php
function check_time($hour, $minute)  
{  
  if ([link:http://www.php.net/in_array@title=in_array]($hour, [link:http://www.php.net/range@title=range](0, 23))  
     and in_array($minute, range(0, 59))) return TRUE; // Eingabe im gültigen Bereich  
  return FALSE; // Eingabe nicht im gültigen Bereich  
}  
  
$parts = explode(':',$_POST['montagvon']);  
$gueltig = check_time($parts[0], $parts[1]);  
if ($gueltig === FALSE)  
{  
  $errors[] = "Benutzer wegen falscher Eingabe beschimpfen!";  
} else {  
$parts[0] = [link:http://www.php.net/str-pad@title=str_pad]($parts[0], 2, "0", STR_PAD_LEFT); // Stunden links mit 0 auffüllen  
$parts[1] = str_pad($parts[1], 2, "0", STR_PAD_LEFT); // evtl. Minuten links mit 0 auffüllen  
$_POST['montagvon'] = $parts[0] .":". $parts[1];  
}

Nicht die eleganteste Methode, aber es funktioniert.

Tschö, Auge

--
Verschiedene Glocken läuteten in der Stadt, und jede von ihnen vertrat eine ganz persönliche Meinung darüber, wann es Mitternacht war.
Terry Pratchett, "Wachen! Wachen!"
ie:{ fl:| br:> va:) ls:[ fo:) rl:( ss:| de:> js:| zu:}
Veranstaltungsdatenbank Vdb 0.3
0 75

Dropdown mit Uhrzeiten

Peter
  • programmiertechnik
  1. 0
    Der Martin
    1. 0
      Peter
      1. 0
        M.
      2. 0
        Auge
        1. 0
          Peter
          1. 0
            M.
            1. 0
              Peter
              1. 0
                M.
          2. 0
            Auge
            1. 0
              Peter
              1. 0
                M.
                1. 0
                  Peter
                  1. 0
                    M.
                    1. 0
                      Peter
                      1. 0
                        M.
                        1. 0
                          Peter
                          1. 0
                            M.
                            1. 0
                              Peter
                              1. 0
                                M.
                                1. 0
                                  Peter
                                  1. 0
                                    M.
                                    1. 0
                                      Peter
                                      1. 0
                                        M.
                                        1. 0
                                          Peter
                                          1. 0
                                            M.
                          2. 0
                            Auge
                            1. 0
                              Peter
                              1. 0
                                Auge
                                1. 0
                                  Peter
                                  1. 0
                                    Peter
                                    1. 0
                                      M.
                                      1. 0
                                        Peter
                                2. 0

                                  Funktioniert ABER

                                  Peter
                                  1. 0
                                    Peter
                                3. 0

                                  Ich hab noch eine Frage zu deiner Funktion - Bitte um Hilfe!

                                  Peter
                                  1. 0

                                    OK, es funktioniert!

                                    Peter
                                  2. 0

                                    Etwas kürzer schreiben?

                                    Peter
                                    1. 0
                                      M.
                                      1. 0
                                        Peter
                                        1. 0
                                          M.
                                          1. 0
                                            Peter
                        2. 0
                          Tabellenkalk
                          1. 0
                            M.
                        3. 0

                          Hab ich dich so richtig verstanden?

                          Peter
                          1. 0
                            Peter
                      2. 0
                        Quincunx
        2. 0
          Quincunx
          1. 0
            Peter
            1. 1
              Jörg Reinholz
              1. 0
                Peter
                1. 0
                  Jörg Reinholz
              2. 1

                Nachtrag

                Peter
                1. 1
                  misterunknown
          2. 0

            Firefox HTML type="time"

            Peter
            1. 0
              Quincunx
              1. 0
                Peter
    2. 0
      Jan
  2. 0
    Tom
  3. 0

    Bitte nicht zwischendurch den Namen ändern (?)

    Matthias Apsel
    • zu diesem forum
  4. 0

    Eine Lösung mit einem kleinen Problem

    Peter
    1. 0

      Eine Lösung mit einem kleinen Problem - Verbesserte Version

      Peter
      1. 0

        Eine Lösung mit einem kleinen Problem - Fast geschafft

        Peter
        1. 0

          Schade

          Peter
          1. 0
            Jörg Reinholz
            • zur info
            1. 2
              Tom
              • menschelei
              1. 0
                Peter
                1. 2

                  Schade - nö ...

                  tami
                  • zu diesem forum
            2. 0
              Peter
              1. 0
                M.
              2. 0
                Jörg Reinholz
                1. 0
                  tami
            3. 0

              Kirschen

              JürgenB
              1. 0
                Jörg Reinholz
                1. 0
                  Der Martin