Mr.X: Feld wird nicht ausgefüllt !

Moin,

ich habe in mein PDF Formular ein Feld(ende) was automatisch bei anklicken mit Gerundeter Uhrzeit ausgefüllt werden soll. Leider klappt das nicht, ich finde den Fehler nicht ! Im Formular ist angegeben Auslöser Maustaste drücken.

var f = this.getField("ende");
var interval = 15 * 60 * 1000;
f.value = util.printd("HH:MM", new Date(Math.ceil()/interval)*interval);

Das Datum wird bei klick automatisch eingetragen

var f = this.getField("datum"); 
f.value = util.printd("dd.mm.yyyy", new Date());
  1. @@Mr.X

    ich habe in mein PDF Formular ein Feld(ende) was automatisch bei anklicken mit Gerundeter Uhrzeit ausgefüllt werden soll. Leider klappt das nicht, ich finde den Fehler nicht !

    Was hast du denn zum Debuggen unternommen?

    f.value = util.printd("HH:MM", new Date(Math.ceil()/interval)*interval);
    

    Der erste Fehler wäre, dass Math.ceil() not a number NaN zurückgibt.

    🖖 Stay hard! Stay hungry! Stay alive! Stay home!

    --
    Home Office ist so frustierend, weil man jetzt noch viel stärker bemerkt mit wievielen Menschen man zu tun hat, die nicht sinnerfassend lesen können. (@Grantscheam)
    1. @@Gunnar Bittersmann

      f.value = util.printd("HH:MM", new Date(Math.ceil()/interval)*interval);
      

      Der erste Fehler wäre, dass Math.ceil() not a number NaN zurückgibt.

      Warum eigentlich Math.ceil()? Du sagtest doch was von runden. Was soll bei 11:20 rauskommen? 11:15 oder 11:30?

      Mit Math.ceil() rundest du auf;
      mit Math.floor() rundest du ab;
      mit Math.round() rundest du.

      Ein weiterer Fehler ist, dass Date in JavaScript kein Timestamp, sondern ein Objekt ist. [MDN] Du wirst die Methoden Date.getTime() und Date.setTime() brauchen.

      🖖 Stay hard! Stay hungry! Stay alive! Stay home!

      --
      Home Office ist so frustierend, weil man jetzt noch viel stärker bemerkt mit wievielen Menschen man zu tun hat, die nicht sinnerfassend lesen können. (@Grantscheam)
      1. leider hab ich von der Sache nicht viel Ahnung bzw. keine Ahnung, ich versuche aus Bsp. ein code zu generieren ... als erstes hatte ich den code

        var interval = 15 * 60 * 1000;
        new Date(Math.ceil(new Date().getTime()/interval)*interval);
        

        aber leider schmeißt der mir in der Browser console alles raus (Datum unsw.) ich benötige nur das HH:MM aufgerundet auf volle 15er

        Ich will das irgendwie schaffen aber es ist doch schwerer als ich dachte 😀

        1. @@Mr.X

          var interval = 15 * 60 * 1000;
          new Date(Math.ceil(new Date().getTime()/interval)*interval);
          

          Das sieht doch gar nicht so schlecht aus. Das erzeugte Date-Objekt musst du natürlich noch irgendwie verwenden.

          Ja, du brauchst die Methode Date().setTime() nicht, wenn du dem Konstruktor einen Timestamp übergibst. Ich finde das aber irgendwie komisch, zweimal new Date() aufzurufen, um ein Datum zu erzeugen. Das ginge auch so:

          const interval = 15 * 60 * 1000;
          const date = new Date();
          date.setTime(Math.ceil(date.getTime()/interval) * interval);
          

          (Ich hab hier das passende const verwendet. In Uralt-Browsern geht’s natürlich nur mit var.)

          aber leider schmeißt der mir in der Browser console alles raus (Datum unsw.) ich benötige nur das HH:MM aufgerundet auf volle 15er

          Was die Methode util.printd() tut, musst du schon selber wissen; wir kennen deine util-Bibliothek nicht.

          🖖 Stay hard! Stay hungry! Stay alive! Stay home!

          --
          Home Office ist so frustierend, weil man jetzt noch viel stärker bemerkt mit wievielen Menschen man zu tun hat, die nicht sinnerfassend lesen können. (@Grantscheam)
          1. das ganze zeug wird ja in ein PDF Formular eingetragen..

            ich hab das glaube ich hinbekommen .... zumindest wird die Zeit erfolgreich auf volle 15er hochgerundet!

            function round(date, minuten) {
              var factor = minuten * 6e4;
              return new Date(Math.ceil(date / factor) * factor);
            }
            var f = this.getField("ende");
            f.value = util.printd("HH:MM", round(new Date(), 15));
            

            besteht die Möglichkeit das erst 5min. über der Viertelstunde hochgerundet oder runtergerundet wird ?

            1. @@Mr.X

              besteht die Möglichkeit das erst 5min. über der Viertelstunde hochgerundet oder runtergerundet wird ?

              Klar. Dazu musst du das, was du mit //* machst, auch noch mit +/- machen: Uhrzeit verschieben, runden, dann wieder zurückschieben.

              BTW, du plenkst.

              🖖 Stay hard! Stay hungry! Stay alive! Stay home!

              --
              Home Office ist so frustierend, weil man jetzt noch viel stärker bemerkt mit wievielen Menschen man zu tun hat, die nicht sinnerfassend lesen können. (@Grantscheam)
              1. Hallo,

                besteht die Möglichkeit das erst 5min. über der Viertelstunde hochgerundet oder runtergerundet wird ?

                Klar. Dazu musst du das, was du mit //* machst, auch noch mit +/- machen: Uhrzeit verschieben, runden, dann wieder zurückschieben.

                oder - falls es auf weitere 2½ Minuten nicht ankommt - Math.round() anstatt Math.ceil() verwenden. Dann würde bis 7½ Minuten nach jeder Viertelstunde abgerundet, ab dann auf die nächste Viertelstunde aufgerundet.

                Btw, wieso bezeichnet der Wiki-Artikel das mathematische Runden durch Math.round() eigentlich als kaufmännisch? Kaufleute neigen doch eher stumpf zum Aufrunden.

                BTW, du plenkst.

                Das ist zum Glück nicht ansteckend.

                Live long and pros healthy,
                 Martin

                --
                Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
                1. @@Der Martin

                  Btw, wieso bezeichnet der Wiki-Artikel das mathematische Runden durch Math.round() eigentlich als kaufmännisch? Kaufleute neigen doch eher stumpf zum Aufrunden.

                  Weil es das kaufmännische Runden ist. In JavaScript wird eben nicht mathematisch gerundet (d.h. mit Gerade-Zahl-Regel):

                  Math.round(1.5) ergibt 2; Math.round(2.5) ergibt 3

                  🖖 Stay hard! Stay hungry! Stay alive! Stay home!

                  --
                  Home Office ist so frustierend, weil man jetzt noch viel stärker bemerkt mit wievielen Menschen man zu tun hat, die nicht sinnerfassend lesen können. (@Grantscheam)
                  1. Hi,

                    Math.round(1.5) ergibt 2; Math.round(2.5) ergibt 3

                    das ist aber exakt das, was ich im Mathematikunterricht in der Schule gelernt habe: Ab der Ziffer 5 wird aufgerundet.

                    Zur nächstgelegenen geraden Zahl zu runden, hört sich zwar auch clever an, ist aber ebenso eine Sonderform des Rundens wie das Runden auf "halbe" Stellen (8,9,1,2 wird zur dazwischenliegenden 0 gerundet, 3,4,6,7 zur dazwischenliegenden 5).

                    Live long and pros healthy,
                     Martin

                    --
                    Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
                    1. @@Der Martin

                      das ist aber exakt das, was ich im Mathematikunterricht in der Schule gelernt habe: Ab der Ziffer 5 wird aufgerundet.

                      Ich hab im Mathematikunterricht in der Schule die Gerade-Zahl-Regel gelernt.

                      Ihr im Westen hattet halt mehr Schauspielunterricht statt vernünftigen Mathematikunterricht. 😜

                      🖖 Stay hard! Stay hungry! Stay alive! Stay home!

                      --
                      Home Office ist so frustierend, weil man jetzt noch viel stärker bemerkt mit wievielen Menschen man zu tun hat, die nicht sinnerfassend lesen können. (@Grantscheam)
                      1. Hallo,

                        das ist aber exakt das, was ich im Mathematikunterricht in der Schule gelernt habe: Ab der Ziffer 5 wird aufgerundet.

                        Ihr im Westen hattet halt mehr Schauspielunterricht statt vernünftigen Mathematikunterricht. 😜

                        an Schauspielunterricht (auch im übertragenen Sinn) kann ich mich nicht erinnern. Wohl aber daran, dass vielen Fächern abseits der Naturwissenschaften oder Fremdsprachen (also Geschichte, Geographie, Musik, aber auch Deutsch so ab der Mittelstufe) allerhand exotische Themenschwerpunkte behandelt, die klassischen Grundlagen aber vernachlässigt wurden.

                        Mir ist das damals zunächst nicht aufgefallen. Aber meine Eltern haben sich oft gewundert, warum z.B. in Geographie nie gelehrt wurde, welche Städte, Ländern, Flüsse, Gebirge wohin gehören. Oder warum in Deutsch oft Romane oder Gedichte von wenig bekannten Autoren behandelt wurden, dafür aber bekannte Größe wie Schiller, Fontane oder Hesse fast völlig unter den Tisch fielen.

                        Und der Trend geht erschreckend weiter. Freunde von mir, die einen zwölfjährigen Sohn haben, sind entsetzt, dass im Deutschunterricht kaum noch auf saubere Orthographie Wert gelegt wird, oder dass im Englischunterricht quasi nur noch das passive Beherrschen der Sprache gelehrt wird (also das Lesen, seltener auch Hören, und Verstehen der Fremdsprache), nicht aber das aktive Formulieren und Artikulieren in der Fremdsprache.
                        Dann kann man's auch gleich bleiben lassen, finde ich.

                        Live long and pros healthy,
                         Martin

                        --
                        Ich stamme aus Ironien, einem Land am sarkastischen Ozean.
                        1. @@Der Martin

                          … dass im Englischunterricht quasi nur noch das passive Beherrschen der Sprache gelehrt wird (also das Lesen, seltener auch Hören, und Verstehen der Fremdsprache), nicht aber das aktive Formulieren und Artikulieren in der Fremdsprache.

                          Den Eindruck hab ich vom Fremdsprachunterricht in der DDR auch. Wir hatten viel aus dem Russischen ins Deutsche übersetzt, aber wenig gesprochen. So ist bei mir außer „Нина, Нина, там картина. Это трактор и мотор“ kaum was hängengeblieben.

                          🖖 Stay hard! Stay hungry! Stay alive! Stay home!

                          --
                          Home Office ist so frustierend, weil man jetzt noch viel stärker bemerkt mit wievielen Menschen man zu tun hat, die nicht sinnerfassend lesen können. (@Grantscheam)
                        2. [...] Aber meine Eltern haben sich oft gewundert, warum z.B. in Geographie nie gelehrt wurde, welche Städte, Ländern, Flüsse, Gebirge wohin gehören. [...]

                          Genau das war bei mir vor ca. 20 Jahren noch der Fall und hat mir regelmäßig mein Zeugnis versaut, weil ich sone Sachen einfach nicht in mein Hirn bekomme. Zum Glück konnte ich ich mich dem Kram ab der 12.ten Klasse samt Chemie und Biologie entledigen 😉

                          1. Hallo,

                            [...] Aber meine Eltern haben sich oft gewundert, warum z.B. in Geographie nie gelehrt wurde, welche Städte, Ländern, Flüsse, Gebirge wohin gehören. [...]

                            Genau das war bei mir vor ca. 20 Jahren noch der Fall und hat mir regelmäßig mein Zeugnis versaut, weil ich sone Sachen einfach nicht in mein Hirn bekomme.

                            das wäre auch mein Problem gewesen - jedenfalls noch zur Schulzeit in den 80er Jahren. Erst Jahre später hat mich das allmählich interessiert, und dann konnte ich mir die Sachen auch besser merken. Fun Fact: Innerhalb von DE merke ich mir die Lage von Städten oder Gebirgen primär daran, an welcher Autobahn sie liegen. Das Autobahnnetz kenne ich nämlich einigermaßen.
                            Ich habe auch prinzipiell ein gutes Zahlengedächtnis: Ich kann mir Geburtstage, Telefonnummern oder Autokennzeichen recht gut merken; mit den Jahreszahlen im Geschichtsunterricht hatte ich aber trotzdem immer Probleme - weil mich der Kram damals nicht die Bohne interessiert hat.

                            Zum Glück konnte ich ich mich dem Kram ab der 12.ten Klasse samt Chemie und Biologie entledigen 😉

                            Hehe. Zu Biologie (als Schulfach) hatte ich ein recht neutrales Verhältnis. Bin ganz gut im Stoff mitgekommen, fand das auch meist interessant, aber das Interesse hielt sich doch in Grenzen.
                            Chemie habe ich in der Oberstufe sogar als Leistungskurs gewählt, weil ich das faszinierend fand.

                            Live long and pros healthy,
                             Martin

                            --
                            Ich stamme aus Ironien, einem Land am sarkastischen Ozean.