Jan: Mit Uhrzeiten rechnen

Hallo Leute!

Ich arbeite an einer Termin-Verwaltung bzw. Reservierung.

Nun habe ich folgende Voraussetzungen: Die Mindest-Reservierungs-Zeit beträgt 1 Stunde, dann gehts in 30 Minuten-Schritten weiter.

Ich möchte das mit 2 Select-Feldern regeln.

Im 1. kann er die Startzeit auswählen, z.B. 14:00 Uhr, dann aktualisiert sich das 2. Select-Feld, als erste Endzeit wird dann 15:00 Uhr, und weiter in 30 Min-Schritten 15:30, 16:00 bis zur endgültigen Schlusszeit (hab Öffnungszeiten vorgegeben)

Wie kann ich das nun am besten realisieren?

lg, Jan

  1. n'abend,

    Im 1. kann er die Startzeit auswählen, z.B. 14:00 Uhr, dann aktualisiert sich das 2. Select-Feld, als erste Endzeit wird dann 15:00 Uhr, und weiter in 30 Min-Schritten 15:30, 16:00 bis zur endgültigen Schlusszeit (hab Öffnungszeiten vorgegeben)

    vielleicht hilft dir der eine oder andere Hinweis in Verkettete Auswahllisten weiter.

    Hänge der ersten Auswahlliste einen onchange-Handler an, welcher in etwa folgendes macht:

    (1) hole Uhrzeit aus erster Auswahlliste
    (2) rechne eine Stunde hinzu (ja, im Regelfall sind das tatsächlich 3600 Sekunden, resp. 3600000 Millisekunden)
    (3) Prüfe ob du überhaupt noch im Rahmen deiner Öffnungszeiten bist
    (4) lösche alle Optionen der 2. Auswahlliste (der verlinkte Artikel zeigt wie das gehen kann)
    (5) füge der zweiten Auswahlliste deine Uhrzeit aus Schritt 2 hinzu
    (6) solange die aktuelle Uhrzeit + 30min kleiner innerhalb der Öffnungszeiten ist, füge die neue Uhrzeit der zweiten Auswahlliste hinzu.

    Was hast du dir denn für Browser ausgedacht, die kein Javascript aktiviert haben? Dürfen die deine Seite dann schlicht nicht benutzen? Können die dein Formular mit unzureichend vielen Parametern vielleicht trotzdem abschicken? Ist dein Script darauf vorbereitet?

    weiterhin schönen abend...

    --
    Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
    sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
    1. Hallo globe,

      Was hast du dir denn für Browser ausgedacht, die kein Javascript aktiviert haben? Dürfen die deine Seite dann schlicht nicht benutzen? Können die dein Formular mit unzureichend vielen Parametern vielleicht trotzdem abschicken? Ist dein Script darauf vorbereitet?

      Du weißt aber, dass die Frage im Thema "PHP" geschrieben wurde?

      Viele Grüße,

      Stefan

      1. n'abend,

        Du weißt aber, dass die Frage im Thema "PHP" geschrieben wurde?

        äh *amKopfKratz*
        Jetzt wo du das erwähnst...

        nagut, nehmen wir meine erste Antwort als mögliche Erweiterung / Verbesserung des UI.

        Um in PHP mit Datum und Zeit zu arbeiten, empfehlen sich natürlich die Date-Funktionen. Aber auch da ist das Vorgehen schlussendlich sehr ähnlich zu dem, was ich bereits lieferte...

        weiterhin schönen abend...

        --
        Freundlich wie man war, hat man mir Großbuchstaben geschenkt.
        sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|
  2. hi,

    weiss nicht so genau was du mit dieser Beschreibung erwartest zu bekommen, aber guck dich mal hier um, vielleicht kannst du sowas wie mktime() benutzen, um 30 Mins draufzurechnen.

    Kommt alles ein bissle darauf an ob du nur volle Stunden als Start zulässt oder ob man auch von 14:05 an buchen kann. Und dann solltest du die Möglichkeit haben (entweder in einem Array, oder besser noch in einer Tabelle) auf die Öffnungszeiten zuzugreifen. Diese müsstest du ja beim Addieren berücksichtigen - kleine Funktion schreiben ;-)

    Vielleicht konkretisierst du noch mal welche Infos dir fehlen...

    Gruss,
    Seppel

  3. Hallo Jan,

    Ohne die dazu nötigen Funktionen jetzt aus dem FF benennen zu können, könntest Du Deine Zeiten in timestamps umwandeln (also Anzahl Sekunden ab einem bestimmten vom System vorgegebenen Startpunkt) und dazu die Zeitintervalle in Sekunden addieren. Die Ergebnisse müsstest Du dann wieder in das gewünschte Format umwandeln.

    Viele Grüße,

    Stefan