Bernd: type="time"

0 47

type="time"

  1. 0
    1. 0
      1. 0
      2. 0
        1. 1
          1. 0
            1. 0
              1. 0
                1. 0
            2. 0
              1. 0

                type="datetime"

                1. 0
          2. 0
            1. 0
              1. 0
                1. 0
            2. 0
          3. 0
            1. 0
              1. 0
                1. 0
                  1. 0
                    1. 1
            2. 0
              1. 0
              2. 0
                1. 0
      3. 0
        1. 0
          1. 0
    2. 0
      1. 0
        1. 0
      2. 0
        1. 0
          1. 2
  2. 0
    1. 0
      1. 0
        1. 0
          1. 0
            1. 0
            2. 0
              1. 0
            3. 0
          2. 0

Guten Morgen,

kann ich einem type="time" sagen, ich möchte nur volle Stunden zulassen?

<form>
  <label for="erinnerung">Wann soll erinnert werden?: </label>
  <input type="time" id="erinnerung">
</form>

Oder gibt es dafür einen anderen type?

  1. @@Bernd

    kann ich einem type="time" sagen, ich möchte nur volle Stunden zulassen?

    Im Prinzip schon; dafür ist das step-Attribut da. [Spec]

    Mit Chrome steppt man dan tatsächlich durch die vollen Stunden:

    Firefox und Safari unterstützen das in dieser Form (noch) nicht. Und natürlich können Nutzer per Tastatur eingeben, was sie wollen. Eine Validierung wäre unumgänglich.

    Oder gibt es dafür einen anderen type?

    Wenn du nur ganze Zahlen haben willst: type="number". Dann wird nicht im Kreis gezählt, d.h. nach 23 kommt nicht 0, aber das ließe sich mit unobtrusive JavaScript leicht realisieren.

    LLAP 🖖

    --
    „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    1. Danke für deine Antwort, ohne Javascript könnte ich es auch so machen?

      <label for="erinnerung" style="display: none;">Wann soll erinnert werden?: </label>
      <input type="number" id="erinnerung" min="0" max="24">
      <input type="submit" name="abschicken_erinnerung" value="Speichern"> 
      
      1. Anstatt

        <input type="submit" name="abschicken_erinnerung" value="Speichern">
        

        habe ich jetzt

        <button type="submit" name="abschicken_erinnerung">Erinnerung setzen</button>
        

        genommen

      2. @@Bernd

        <label for="erinnerung" style="display: none;">Wann soll erinnert werden?: </label>
        

        Was sagte Terry Pratchett zu multiplen Satzzeichen doch gleich? Manche kann man sicher kombinieren, Fragezeichen und Doppelpunkt wohl nicht.

        <input type="number" id="erinnerung" min="0" max="24">
        

        Eher bis max="23" oder?

        LLAP 🖖

        --
        „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
        1. Tach!

          <input type="number" id="erinnerung" min="0" max="24">
          

          Eher bis max="23" oder?

          Wie kommst du darauf, ohne den konkreten Anwendungsfall zu kennen? Warum soll das auf 23 begrenzt sein und nicht vielleicht sogar nach oben unbegrenzt? "Stunden" gibt es nicht nur als Uhrzeit sondern auch als Zeitspanne.

          Beispielsweise zeigt mir meine Waschmaschine eine Restdauer von 237 Minuten an. Das kann ich aber so nicht als Erinnerung in meinen Mobiltelefon eingeben, weil irgendwer meinte, dass Zeiten als Stunden 0-23, Minuten 0-59 und Sekunden 0-59 einzugeben seien. Die Umrechnung muss ich selbst vornehmen. Wozu hab ich einen Rechner, wenn ich selbst rechnen muss? Ich bin im Kopfrechen nicht besonders stark und finde es mühselig das zur Basis 60 umzurechnen.

          dedlfix.

          1. @@dedlfix

            Wie kommst du darauf, ohne den konkreten Anwendungsfall zu kennen? Warum soll das auf 23 begrenzt sein und nicht vielleicht sogar nach oben unbegrenzt? "Stunden" gibt es nicht nur als Uhrzeit sondern auch als Zeitspanne.

            Die Frage „Wann soll erinnert werden?“ deutet auf eine Uhrzeit hin, nicht auf eine Zeitspanne.

            Und die ursprüngliche Verwendung von type="time" lässt keinerlei Zweifel übrig, dass eine Uhrzeit gemeint ist.

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
            1. Tach!

              Die Frage „Wann soll erinnert werden?“ deutet auf eine Uhrzeit hin, nicht auf eine Zeitspanne.

              Diese Frage kann man genausogut mit "in x Stunden" beantworten, die ist also nicht eindeutig gestellt.

              dedlfix.

              1. @@dedlfix

                Diese Frage kann man genausogut mit "in x Stunden" beantworten, die ist also nicht eindeutig gestellt.

                Wenn eine Zeitspanne gemeint ist, sollte man die Frage eindeutig stellen: „In wieviel Stunden soll erinnert werden?“


                Im vorigen Posting noch ergänzt:

                Und die ursprüngliche Verwendung von type="time" lässt keinerlei Zweifel übrig, dass eine Uhrzeit gemeint ist.

                LLAP 🖖

                --
                „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
                1. Tach!

                  Und die ursprüngliche Verwendung von type="time" lässt keinerlei Zweifel übrig, dass eine Uhrzeit gemeint ist.

                  Nö, man kann sich schließlich auch irren und eine Zeitspanne meinen. Ach wäre das schön, wenn immer alles so umgesetzt werden würde, wie es gemeint gewesen war. Es gibt in der freien Wildbahn genügend Verwendungen von DateTime & Co. wenn eigentlich Timespan gemeint war, besonders wenn Systeme keinen separaten Typ für Timespan anbieten. HTML gehört dazu.

                  dedlfix.

            2. Ich möchte mit z.B. am 28.02.2019 um 23:00 Uhr erinnern lassen.

              Das ganze sieht dann so aus

              <form action="" method="POST">
              			<div class="textfeld">
              				<label for="erinnerung_time" >Am: </label>
              				<input type="date" id="erinnerung_date" required> um 
              				<input type="time" id="erinnerung_time" min="0" max="24" required> Uhr
              			</div>
              			<div class="textfeld abstand_2">
              				<label for="erinnerung_email" >eMail: </label>
              				<input type="text" id="erinnerung_email" value="<?php echo htmlspecialchars($object->user_nickname) ?>" required>
              			</div>
              			<div class="textfeld">
              				<button type="submit" name="abschicken_erinnerung">🕒 Erinnerung setzen</button>
              			</div>
              	    </form>
              
              1. Moment, wäre nicht auch das Feld datetime möglich bzw. besser?
                https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local

                1. Tach!

                  Moment, wäre nicht auch das Feld datetime möglich bzw. besser?
                  https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/datetime-local

                  Ja, wenn der Zeitpunkt sich auf einen konkreten Tag und Uhrzeit bezieht und nicht nur auf eine Uhrzeit ohne dass der Tag eine Rolle spielt. Zu beachten ist, dass lauf MDN datetime einerseits deprecated ist, andererseits der Ersatz datetime-local aber noch nicht in allen Browsern verfügbar ist.

                  dedlfix.

          2. Ich trage oft Termine schon sehr früh für die Zukunft in meinen Kalender ein, wo noch nicht alle Daten hinterlegt sind. Um dieses nicht zu vergessen möchte ich mir eine Mail schicken lassen. Dazu das Datum und die Uhrzeit. Um den Server nicht zu sehr zu belasten möchte ich einen Cron einrichten der jede Stunde ein Script aufruft um zu schauen liegt eine Erinnerung vor, wenn ja schick eine Mail raus.

            Mir wäre es auch lieber eine beliebige Zeit eintragen zu können, aber ich denke da bekomme ich Ärger vom Anbieter wenn ich einen minütlichen Cron einrichte? Verbraucht bestimmt viel Ressourcen auf dem Server?

            1. Tach!

              Ich trage oft Termine schon sehr früh für die Zukunft in meinen Kalender ein, wo noch nicht alle Daten hinterlegt sind. Um dieses nicht zu vergessen möchte ich mir eine Mail schicken lassen. Dazu das Datum und die Uhrzeit. Um den Server nicht zu sehr zu belasten möchte ich einen Cron einrichten der jede Stunde ein Script aufruft um zu schauen liegt eine Erinnerung vor, wenn ja schick eine Mail raus.

              Dann wäre "Um wieviel Uhr soll erinnert werden?" eine eindeutigere Frage, was da für ein Wert erwartet wird.

              Mir wäre es auch lieber eine beliebige Zeit eintragen zu können, aber ich denke da bekomme ich Ärger vom Anbieter wenn ich einen minütlichen Cron einrichte? Verbraucht bestimmt viel Ressourcen auf dem Server?

              Das kommt ganz darauf an, wie du das implementierst. Üblicherweise belastet eine Datenbankabfrage pro Minute den Server nicht sonderlich. Vorausgesetzt, sie ist nicht zu umständlich und ohne Nutzung von Optimierungsmaßnahmen (zum Beispiel Index) ausgeführt.

              dedlfix.

              1. Hallo,

                Das kommt ganz darauf an, wie du das implementierst. Üblicherweise belastet eine Datenbankabfrage pro Minute den Server nicht sonderlich. Vorausgesetzt, sie ist nicht zu umständlich und ohne Nutzung von Optimierungsmaßnahmen (zum Beispiel Index) ausgeführt.

                ich dachte wie folgt

                $heute = date("Y-m-d"); 
                $zeit  = date("H:i");  
                
                $sql = "SELECT ke_id, ke_userID, ke_kalenderID, ke_hinweis, ke_datum, ke_uhrzeit 
                        FROM kalender_erinnerungen 
                        WHERE ke_datum = ? 
                        AND ke_uhrzeit = ?";
                
                $statement = $mysqli->prepare($sql);
                $statement->bind_param('ss', $heute, $zeit);
                $statement->execute();
                 
                $result = $statement->get_result();
                
                while($row = $result->fetch_object()) {
                  // Hier kommt der Mail Versand inkl. das Update auf den jeweiligen Eintrag 
                  //dass dieser bereits verschickt wurde hinein. 
                }
                

                Was sagst du zu diesem Code, wird mich mein Anbieter kündigen wenn ich diesen jede Minute durchlaufen lasse? Die Datenbank schaut so aus

                CREATE TABLE IF NOT EXISTS `kalender_erinnerungen` (
                  `ke_id` int(11) NOT NULL AUTO_INCREMENT,
                  `ke_userID` varchar(200) NOT NULL,
                  `ke_kalenderID` varchar(200) NOT NULL,
                  `ke_email` varchar(200) NOT NULL,
                  `ke_hinweis` text NOT NULL,
                  `ke_datum` date NOT NULL,
                  `ke_uhrzeit` time NOT NULL,
                  `ke_status` int(1) NOT NULL DEFAULT '0',
                  PRIMARY KEY (`ke_id`)
                ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
                

                Ich habe kein Index vergeben.

                Dann hätte ich noch ein weitere Frage, wann nimmt man $result->fetch_assoc() und wann $result->fetch_object()? Oder ist dieses einfach nur Geschmackssache?

                1. Tach!

                  ich dachte wie folgt

                  Nichts besonderes, performancetechnisch.

                  Andererseits möchtest du vielleicht auch Termine der Vergangenheit berücksichtigen, die - aus welchen Gründen auch immer - noch nicht abgearbeitet wurden.

                  Die Datenbank schaut so aus ... Ich habe kein Index vergeben.

                  Du könntest einen Index auf mindestens das Datum legen. Einer für die Uhrzeit wird dann vielleicht gar nicht mehr genommen werden, wenn die Menge bereits klein genug ist. Die Verwendung von Indexen hängt nicht nur davon ab, ob ein passender vorhanden ist, sondern auch, ob der Optimizer der Meinung ist, dass es sich überhaupt lohnt.

                  Was sagst du zu diesem Code, wird mich mein Anbieter kündigen wenn ich diesen jede Minute durchlaufen lasse?

                  Würde dich dein Anbieter kündigen, wenn durch Besucher ein vergleichbar hoher Traffic entsteht? Hast du einen dermaßen knausrigen Anbieter gewählt, der bei der kleinsten Last gleich Kunden kündigt?

                  Dann hätte ich noch ein weitere Frage, wann nimmt man $result->fetch_assoc() und wann $result->fetch_object()? Oder ist dieses einfach nur Geschmackssache?

                  Ja. Geschmackssache, beziehungsweise wie der Bedarf ist. Wenn beispielsweise die Anwendung generell objektorientiert ist, ergibt es üblicherweise nicht viel Sinn, die Daten als Array abzufragen. Besonders dann nicht, wenn sie anderenorts als Objekt erwartet werden.

                  dedlfix.

            2. Hello,

              Mir wäre es auch lieber eine beliebige Zeit eintragen zu können, aber ich denke da bekomme ich Ärger vom Anbieter wenn ich einen minütlichen Cron einrichte? Verbraucht bestimmt viel Ressourcen auf dem Server?

              Du bringst jetzt aber nicht das Vorwarnintervall mit der Zielzeit durcheinander? Man kann auch bei einer in Stunden und Minuten angegebenen Zeit in Intervallen von einer Stunde auf diesen Eintrag hinweisen. Den Vorwarnabstand sollte man ohnehin bestimmen können, entweder durch Eingabe des Users oder zumindest durch allgemeine Konfiguration deines Moduls.

              Glück Auf
              Tom vom Berg

              --
              Es gibt nichts Gutes, außer man tut es!
              Das Leben selbst ist der Sinn.
          3. Hallo dedlfix,

            Beispielsweise zeigt mir meine Waschmaschine eine Restdauer von 237 Minuten an.

            Das glaub ich nicht. 😀

            Ich bin im Kopfrechen nicht besonders stark

            Das glaub ich erst recht nicht. 😂

            Bis demnächst
            Matthias

            --
            Pantoffeltierchen haben keine Hobbys.
            1. Hello,

              Beispielsweise zeigt mir meine Waschmaschine eine Restdauer von 237 Minuten an.

              Das glaub ich nicht. 😀

              Ich bin im Kopfrechen nicht besonders stark

              Das glaub ich erst recht nicht. 😂

              Frage: Wie spät ist es?
              Antwort: Da steht "Drei geteilt durch 57". Ausrechnen musst Du bitte selber.

              ☆☆☆höhöhö☆☆☆

              Glück Auf
              Tom vom Berg

              --
              Es gibt nichts Gutes, außer man tut es!
              Das Leben selbst ist der Sinn.
              1. Hallo,

                Antwort: Da steht "Drei geteilt durch 57". Ausrechnen musst Du bitte selber.

                du hast also 57 Wecker und musst um 3 Uhr raus…

                Gruß
                Kalk

                1. @@Tabellenkalk

                  Antwort: Da steht "Drei geteilt durch 57". Ausrechnen musst Du bitte selber.

                  du hast also 57 Wecker und musst um 3 Uhr raus…

                  Seit wann muss Tom um 3 Uhr raus? So wie der immer trödelt, muss er schon um halb drei raus!

                  LLAP 🖖

                  --
                  „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
                  1. Hello,

                    Antwort: Da steht "Drei geteilt durch 57". Ausrechnen musst Du bitte selber.

                    du hast also 57 Wecker und musst um 3 Uhr raus…

                    Seit wann muss Tom um 3 Uhr raus? So wie der immer trödelt, muss er schon um halb drei raus!

                    Nee, immer erst um 4:44 zum Pinkeln ;-P

                    Welches HTML-Element passt da am besten?

                    Glück Auf
                    Tom vom Berg

                    --
                    Es gibt nichts Gutes, außer man tut es!
                    Das Leben selbst ist der Sinn.
                    1. Hi,

                      Nee, immer erst um 4:44 zum Pinkeln ;-P

                      nav.

                      (navigare necesse est - ich muß schiffen ...)

                      cu,
                      Andreas a/k/a MudGuard

            2. Tach!

              Beispielsweise zeigt mir meine Waschmaschine eine Restdauer von 237 Minuten an.

              Das glaub ich nicht. 😀

              Inklusive Trocknen dauert das so lange. Genauer gesagt muss ich mir einen Wecker stellen für das Ende des Waschvorgangs, weil sie dann gern mal aufhört und rumningelt, dass sie keine Lust hat, mehr als 4 kg zu trocknen, sie es dann aber doch macht, wenn ich den Vorgang per Hand starte.

              Ich bin im Kopfrechen nicht besonders stark

              Das glaub ich erst recht nicht. 😂

              Ist aber so. Ich muss nur wissen, wie es geht. Das eigentliche Rechnen kann der Computer/Taschenrechner machen.

              dedlfix.

              1. Hallo dedlfix,

                Beispielsweise zeigt mir meine Waschmaschine eine Restdauer von 237 Minuten an.

                Das glaub ich nicht. 😀

                Inklusive Trocknen dauert das so lange.

                Das glaub ich. Nur, dass da tatsächlich eine Zeit in Minuten steht …

                Das eigentliche Rechnen kann der Computer/Taschenrechner machen.

                Das stimmt auch wieder. Für solche langweilige Aufgaben, sind die Dinger schließlich erfunden worden.

                Bis demnächst
                Matthias

                --
                Pantoffeltierchen haben keine Hobbys.
              2. Hello,

                Das glaub ich nicht. 😀

                Inklusive Trocknen dauert das so lange. Genauer gesagt muss ich mir einen Wecker stellen für das Ende des Waschvorgangs, weil sie dann gern mal aufhört und rumningelt, dass sie keine Lust hat, mehr als 4 kg zu trocknen, sie es dann aber doch macht, wenn ich den Vorgang per Hand starte.

                Zählen die vier Kilogramm eigentlich mit oder ohne Wasser?

                Glück Auf
                Tom vom Berg

                --
                Es gibt nichts Gutes, außer man tut es!
                Das Leben selbst ist der Sinn.
                1. Tach!

                  Zählen die vier Kilogramm eigentlich mit oder ohne Wasser?

                  Nun, vermutlich wird die Maschine nicht so intelligent sein, von dem, was sie messen kann, den Wasseranteil rauszurechnen.

                  dedlfix.

      3. Hallo Bernd,

        <label for="erinnerung" style="display: none;">Wann …?: </label>
        

        Wenn du ein Label mit display: none (für alle!) versteckst, kannst du es auch gleich weglassen. Label sind aber für die Beschriftung von input-Feldern unbedingt notwendig.

        Bis demnächst
        Matthias

        --
        Pantoffeltierchen haben keine Hobbys.
        1. Hallo,

          ich wollte es für Blinde eigentlich lassen wegen dem Vorlesen, das meint doch immer Gunnar? Für alle anderen benötige ich es eigentlich nicht.

          1. @@Bernd

            ich wollte es für Blinde eigentlich lassen wegen dem Vorlesen, das meint doch immer Gunnar?

            display: none (und auch visibility: hidden) blendet Inhalte für alle aus – auch für Screenreader-Nutzer.

            Visuell verstecken geht anders.

            (Oder mit aria-label oder aria-labelledby. Aber verwende kein ARIA, wenn du nicht musst.)

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
    2. @@Gunnar Bittersmann

      Wenn du nur ganze Zahlen haben willst: type="number". Dann wird nicht im Kreis gezählt, d.h. nach 23 kommt nicht 0, aber das ließe sich mit unobtrusive JavaScript leicht realisieren.

      Ließe sich leicht realisieren.

      LLAP 🖖

      --
      „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      1. Danke für das Beispiel. Ich kann allerdings auch händisch 2500 reinschreiben. Hm, da nehme ich doch lieber date und time getrennt voneinander?

        1. @@Bernd

          Ich kann allerdings auch händisch 2500 reinschreiben. Hm, da nehme ich doch lieber date und time getrennt voneinander?

          Je nach Anwendung kann es auch sinnvoll sein, den Nutzer eingeben zu lassen, was sie will, und dann die Nutzereingabe auf volle Stunden zu runden (bzw. aufzurunden oder abzurunden).

          LLAP 🖖

          --
          „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
      2. Tach!

        Wenn du nur ganze Zahlen haben willst: type="number". Dann wird nicht im Kreis gezählt, d.h. nach 23 kommt nicht 0, aber das ließe sich mit unobtrusive JavaScript leicht realisieren.

        Ließe sich leicht realisieren.

        Mit schönem Typmischmasch.

        const timeInputElement = document.querySelector('#time');
        
        timeInputElement.min--;
        timeInputElement.max++;
        
        timeInputElement.addEventListener('input', event => {
        	console.log(typeof timeInputElement.value);
        	console.log(typeof timeInputElement.min);
        	if (timeInputElement.value === timeInputElement.min)
        	{
        		timeInputElement.value = 23;
        	}
        	else if (timeInputElement.value === timeInputElement.max)
        	{
        		timeInputElement.value = 0;
        	}
        });
        

        Einerseits hat Javascript eine automatische Typumwandlung, so dass es kein Problem ist, dass du mit Variablen vom Typ String Rechenoperationen ausführen kannst (bei timeInputElement.min und timeInputElement.max) und numerische Werte zuweisen kannst (bei timeInputElement.value), andererseits verwendest du typsichere Vergleiche. Du musst dich also darauf verlassen, dass das Javascript im Browser die Numbers stets zu Strings konvertiert, damit der typsichere Vergleich nicht fehlschlägt. Sieht mir recht paradox aus, und ich sehe auch keinen technischen Grund, warum die Typsicherheit hier notwendig wäre.

        dedlfix.

        1. @@dedlfix

          Einerseits hat Javascript eine automatische Typumwandlung, so dass es kein Problem ist, dass du mit Variablen vom Typ String Rechenoperationen ausführen kannst (bei timeInputElement.min und timeInputElement.max)

          Ja, timeInputElement.min-- sieht doch schöner aus als
          timeInputElement.min = String(parseInt(timeInputElement.min) - 1)

          und numerische Werte zuweisen kannst (bei timeInputElement.value), andererseits verwendest du typsichere Vergleiche. Du musst dich also darauf verlassen, dass das Javascript im Browser die Numbers stets zu Strings konvertiert, damit der typsichere Vergleich nicht fehlschlägt.

          Ich bin davon ausgegangen, dass ich mit timeInputElement.value = 23 den Attributwert ändere und beim Auslesen von timeInputElement.value den Attributwert auslese, also einen String bekomme.

          Sieht mir recht paradox aus, und ich sehe auch keinen technischen Grund, warum die Typsicherheit hier notwendig wäre.

          Aber mit „schönem Typmischmasch“ haste wohl recht. Ich hab da mal === in == geändert.

          LLAP 🖖

          --
          „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
          1. Tach!

            Einerseits hat Javascript eine automatische Typumwandlung, so dass es kein Problem ist, dass du mit Variablen vom Typ String Rechenoperationen ausführen kannst (bei timeInputElement.min und timeInputElement.max)

            Ja, timeInputElement.min-- sieht doch schöner aus als
            timeInputElement.min = String(parseInt(timeInputElement.min) - 1)

            So sehe ich das auch. Zur Philosophie von Javascript gehört diese automatische Typkonvertierung, da kann man sie auch nutzen. In produktiv genutzem Code müsste man in dem Fall zwar auch nicht solch eine explizite Umwandlung vornehmen, aber über eine Fehleingabenprüfung nachdenken. Ist es wichtig, dass Fehleingaben verhindert werden müssen? Oder kann man sie durchgehen lassen, so dass Müll rauskommt, wenn man Müll eingibt und der Anwender dann eben, selbst schuld, Pech gehabt hat.

            und numerische Werte zuweisen kannst (bei timeInputElement.value), andererseits verwendest du typsichere Vergleiche. Du musst dich also darauf verlassen, dass das Javascript im Browser die Numbers stets zu Strings konvertiert, damit der typsichere Vergleich nicht fehlschlägt.

            Ich bin davon ausgegangen, dass ich mit timeInputElement.value = 23 den Attributwert ändere und beim Auslesen von timeInputElement.value den Attributwert auslese, also einen String bekomme.

            Das wird man wohl auch können. Andererseits, ist es überhaupt wichtig, was für ein konkreter Typ da kommt, oder kann man notwendige Konvertierungen dem Automatismus überlassen? In dem Fall wohl: nein und ja.

            Sieht mir recht paradox aus, und ich sehe auch keinen technischen Grund, warum die Typsicherheit hier notwendig wäre.

            Aber mit „schönem Typmischmasch“ haste wohl recht. Ich hab da mal === in == geändert.

            Ich hab noch keine mir schlüssige Erklärung gefunden, warum man aus Prinzip den typsicheren Vergleich vorziehen sollte. Irgendwann hat das mal jemand in die Welt gerufen, und alle machen es nach. Man findet das auch an Stellen, wo es überhaupt nicht darauf ankommt, dass die Typen exakt gleich sind. Zum Beispiel ist es oft egal, ob null oder undefined ankommt, und so kann man ruhig auch null == undefined vergleichen. Und ich hab auch in der Vergangenheit vor Zeiten des === nicht gesehen, dass ebenso großflächig, wie heute === verwendet wird, die Notwendigkeit der Typgleichheit in Code gegossen wurde.

            In einem Blog-Beitrag von Heise hat mal jemand Performance ins Feld geworfen. Aber mal ganz abgesehen von der Sinnhaftigkeit eventueller Mikrooptimierung hat der Autor auf meinen skeptischen Kommentar nicht geantwortet. In der Javascript-Spezifikation findet man die Algorithmen, die bei Vergleichen mit == und === zu verwenden sind. Wenn die Werte gleichen Typs sind, vermag ich da keinen Performance-Unterschied zu erkennen, denn ob die Typen gleich sind, wird da in jedem Fall geprüft. Wenn ja, geht es in beiden Fällen gleichwertig mit dem eigentlichen Vergleich weiter. Wenn nicht, muss man an dieser Stelle mit dem Vergleich aufhören, denn Effizienzbetrachtungen sind unsinnig, wenn die Effekte unterschiedlich sind. Bei ungleichen Typen steht nun bei === das Ergebnis fest, bei == hängt es von den Werten nach der Typkonvertierung ab. Da kann nur noch der Anwendungsfall entscheiden, mit welchen Auskommen er besser abgedeckt ist.

            dedlfix.

  2. Oder gibt es dafür einen anderen type?

    Die Anforderungen an ein Programm was Erinnerungen verteilen soll, dürften ungemein vielfältiger sein als die Frage nach dem type für ein Eingabefeld. Was machst Du mit wiederkehrenden Ereignissen wie z.B. Geburtstage, Jahrestage usw.? Insbesondere wenn die beweglich sind wie z.B. Ostern?

    MFG

    1. Ob es ein Wiederkehrender Termin ist spielt in diesem Fall keine Rolle. Ich möchte für ein bestimmtes Datum zu einer bestimmten Zeit Erinnerter werden. Dieses ist in Outlook nicht anderes.

      1. Ich möchte für ein bestimmtes Datum zu einer bestimmten Zeit Erinnerter werden.

        Da ist ein Stundenraster ja völlig ungeeignet: Niemand möchte eine Stunde eher geweckt werden nur weil man das am Wecker nicht anders einstellen kann.

        MFG

        1. Ich verstehe nicht was du meinst?

          Ich habe einen Termin z.B. am 28.02.2019 um 11:11 Uhr! Um diesen nicht zu verpassen und frühzeitig mit dem Fahrrad in die Stadt fahren zu können möchte ich mich am 28.02.2019 um 10:00 Uhr erinnern lassen.

          Was ist daran jetzt falsch?

          1. @@Bernd

            Ich habe einen Termin z.B. am 28.02.2019 um 11:11 Uhr! Um diesen nicht zu verpassen und frühzeitig mit dem Fahrrad in die Stadt fahren zu können möchte ich mich am 28.02.2019 um 10:00 Uhr erinnern lassen.

            Was ist daran jetzt falsch?

            Du fährst Fahrrad. Fahr SUV, dann musst du dich erst um 11:00 erinnern lassen.</sarcasm>

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
            1. Was ist daran jetzt falsch?

              Du fährst Fahrrad. Fahr SUV, dann musst du dich erst um 11:00 erinnern lassen.</sarcasm>

              Genauso bescheuert fahren die dann auch.

            2. Hi,

              Du fährst Fahrrad. Fahr SUV, dann musst du dich erst um 11:00 erinnern lassen.</sarcasm>

              und zwar so ein SUV!

              cu,
              Andreas a/k/a MudGuard

              1. Hi,

                Du fährst Fahrrad. Fahr SUV, dann musst du dich erst um 11:00 erinnern lassen.</sarcasm>

                und zwar so ein SUV!

                Das erinnert mich an den legendären Dreisitzer den die Ostfriesen mal gebaut haben. Besonderes Feature: Scheibenwischer innen, der Schalthebel hinter dem Fahrersitz und 6 Türen vorne, hinten, oben, unten, rechts und links (danke Otto).

                MFG

            3. Hallo Gunnar Bittersmann,

              Du fährst Fahrrad. Fahr SUV, dann musst du dich erst um 11:00 erinnern lassen.</sarcasm>

              SUV war gestern. Heute ist ATV.

              Bis demnächst
              Matthias

              --
              Pantoffeltierchen haben keine Hobbys.
          2. Ich verstehe nicht was du meinst?

            Stell Dir vor, Wecken 5 Min. vor 6 Uhr ist gewünscht. Um 6 wäre zu spät, um 5 jedoch (weil ein Stundenraster nichts anderes ermöglicht) zu früh.

            Ich habe einen Termin z.B. am 28.02.2019 um 11:11 Uhr! Um diesen nicht zu verpassen und frühzeitig mit dem Fahrrad in die Stadt fahren zu können möchte ich mich am 28.02.2019 um 10:00 Uhr erinnern lassen.

            Was ist daran jetzt falsch?

            Deine Annahme daß ein Stundenraster alle Fälle abdeckt. MFG