0

Funktion now() geht um zwei Stunden nach?

Ich habe mir einen kleinen Timer gebaut:

Funktionen auf den Buttons sind:

START := now() 

STOP := now()

Aber statt 9:45 zeigt START jetzt 7:45 Uhr an.

Ist das ein Bug oder ein Feature? :)

Und wie gewöhne ich der Berechnung ab, mir die Tausendstelsekunde anzuzeigen? Das ist etwas zu genau. 

TIMER

6 Antworten

null
    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Nein das ist kein bug hängt wohl mit der Sommer / Winterzeit zusammen. schreib mal Start := time(now()) dann sollte es gehen.

    • Ninox Premiumpartner
    • Bastian_Vorholt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Für die verkürtzte schreibweise müsste es so lauten: 

     

    let mySeconds := number(Stop - Start) / 1000;
    let myMinutes := floor(mySeconds / 60);
    let myHours := floor(mySeconds / 3600);
    let myDays := floor(mySeconds / (3600 * 24));
    format(myHours, "##00") + ":" + format(myMinutes - 60 * myHours, "00") + ":" + format(mySeconds - 60 * myMinutes, "00")

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wenn START und STOP die Zeitfelder sind, dann solltest du die Formel anpassen:

    START:=time(now())

    STOP:=time(now())

    Grund dafür- now() beinhaltet Datum und Zeitstempel und wenn du nur die Zeit haben möchtest, musst du das auch der Datenbank mitteilen

     

    Leo

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Oops, der Bastian hat’s schon erklärt 

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Wobei ich das Verhalten der Zeitfelder und -berechnungen schon etwas seltsam finde. Klar, 'now()' beinhaltet Datum UND Uhrzeit (MEZ), aber die Zuweisung an ein Zeitfeld sollte auch nur die Uhrzeit übergeben. Wird ja sogar gemacht ('hh:mm'), aber leider eine falsche (MEZ - 2 Std.).

     

    Und bei Zeitdauer: Die einfache Formel 'Stop - Start' (beides Zeitfelder) berechnet ja das richtige Ergebnis (z. B. 01:15:08.345). Um die Anzeige der Sekunden zu unterdrücken (oder zu runden) müsste es doch eigentlich genügen, das Ergebnis mit format(Dauer, "hh:mm") zu formatieren. Dann wird aber seltsamerweise eine Stunde mehr angezeigt (z. B. 02:15 statt 01:15). Statt dessen muss man etwas vermeintlich Simples wie die Anzeige einer berechneten Zeitdauer aufwändig aus Stunden, Minuten und Sekunden zusammenbauen.

     

    Also, ich sehe da noch Verbesserungspotenzial, lasse mich aber gerne eines Besseren belehren.

     

    ninox_Time-Funktionen1

    • OliverS
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke an euch alle, so funktioniert es!

    Dass die Anzeige der gerundeten Zeit so kompliziert ist, hat mich auch gewundert. Ebenso das Problem mit format(Dauer, "hh:mm"). Das hat bislang den Einsatz meiner Reisekostenabrechnung verhindert, weil es da natürlich in vielen Berechnungen auf die Stunden ankommt, um die richtigen Pauschalen zu berechnen. 

    Bei Ninox hätte ich gedacht, dass ich die Formatierung der Uhrzeit analog zur Zahelnformatierung im Eigenschaften-Feld auswählen kann. Aber so geht es auch :) 

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 6Antworten
  • 3094Ansichten