Eingabe = Zeit, So erlauben Sie nur die Eingabe der Stunde. Keine Minuten oder Sekunden

Lesezeit: 2 Minuten

Ich möchte dem Benutzer erlauben, eine Zeit einzugeben, aber nur die Eingabe von Stunden, keine Minuten oder Sekunden. Ich verstehe, dass ein Text- oder Zahlenfeld besser wäre, aber die Eingabe als Zeit posten muss.

Ich habe versucht, das Schrittattribut auf 600 zu setzen, aber das entfernt nur die Millisekunden.

  • Warum nicht eine Texteingabe mit Min und Max zwischen 0 und 23 einrichten? Am Ende Ihres Codes können Sie ein Date-Objekt basierend auf den anderen Eingaben oder ähnlichem erstellen.

    – Trocknet

    23. September 2019 um 13:09 Uhr

  • Leider muss ich als Zeitfeld eingeben. Beim Posten, weil es als DateTime-Objekt empfangen wird

    – Muhammed Vairnd

    23. September 2019 um 13:12 Uhr

Eingabe Zeit So erlauben Sie nur die Eingabe der
etwas hier

Das Schrittattribut ist die Schrittzahl, die Sie in Millisekunden ausführen können, also sollten Sie in diesem Fall verwenden 60 * 60 * 1000 (60 Minuten * 60 Sekunden * 1000 Millisekunden = 1 Stunde) als Wert:

<input type="time" step="3600000" />

Beachten Sie, dass dies in Safari nicht funktioniert, aber ich habe es in Chrome getestet. Safari unterstützt diesen Typ einfach überhaupt nicht, daher findet meines Erachtens keine Validierung statt. Das macht dies nicht universell kompatibel.

  • Warum verwendest du nicht stattdessen einen Datepicker? jQuery Ui-Datumsauswahl oder Bootstrap-Datumsauswahl

    – Sim1-81

    23. September 2019 um 13:17 Uhr

  • @Sim1-81 dann müssten Sie jQuery(+Bootstrap) zum Projekt hinzufügen. HTML5 hat einen eigenen Datepicker

    – Lukas Kiebel

    23. September 2019 um 13:17 Uhr

  • @LucaKiebel In der Tat, das hat mich auch ein bisschen überrascht. MDN sagt, es ist das Datum in Millisekunden, da dies der zugrunde liegende Mechanismus ist, aber ja, beide funktionieren. Sollte nicht der Fall sein. Was ist, wenn ich 1000 Tage überspringen möchte? Ich weiß, wie selten das vorkommt, aber wer weiß. Ich stimme auch zu und füge hinzu mehr Abhängigkeiten sind nicht das, was Sie wollen, wenn der Browser/das Betriebssystem bereits mit einem vollkommen angemessenen Datepicker ausgestattet ist, an den Benutzer gewöhnt sind.

    – etwas hier

    23. September 2019 um 13:22 Uhr

  • @Luca Kiebel, weil Sie mit jQuery oder Bootstrap das Datumsformat angeben können, das Sie für die Ausgabe des Pickers bevorzugen. Bei HTML5 nur das Startdatum, das Enddatum und die Schritte

    – Sim1-81

    23. September 2019 um 13:32 Uhr


  • @ Sim1-81 Mit Vanilla JS ist Ihre Ausgabe einfach Date Objekt, das Sie beliebig formatieren können. Es ist nicht erforderlich, eine riesige Bibliothek mit eigenen Konventionen hinzuzufügen, wenn der Browser bereits eine Möglichkeit bietet, dies zu erreichen. Auch wenn dieser Weg etwas anders ist als der, den Sie gewohnt sind.

    – etwas hier

    23. September 2019 um 13:34 Uhr


Als ich versuchte, den in der akzeptierten Antwort vorgeschlagenen Code zu verwenden, funktionierte er bei mir nicht wie erwartet, daher möchte ich nur meine Erfahrungen teilen, falls jemand das gleiche Problem hat:

In meinem Fall hatte ich keine Millisekunden in meiner Eingabe, also reichte es aus, es so zu machen:

<input type="time" step="3600" >

994890cookie-checkEingabe = Zeit, So erlauben Sie nur die Eingabe der Stunde. Keine Minuten oder Sekunden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy