Announcement

Collapse
No announcement yet.

Differenz zwischen zwei Timestamps

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Differenz zwischen zwei Timestamps

    Ich arbeite mit Lua und lese mir über einen SQL einen Timestamp aus und wandele diesen in einen Float um.
    Code:
    Uhrzeit = q:FieldValue(2)
    t1 = StrToFloat(Uhrzeit)
    Anschließend möchte ich mir die Differenz zwischen dem aktuellen Timestamp und dem Wert aus der DB berechnen.
    Habe es so probiert:
    Code:
    Diff = os.difftime(StrToFloat(os.date()), t1)
    da bekomm ich aber 0 zurück.
    hab es dann mit
    Code:
    Diff = os.difftime(os.time(), t1)
    probiert
    da bekomm ich einen Wert herraus, aber bezweifele dass der richtig ist.
    Ergebnis = 1331806685
    Auch wenn es Sekunden sind und ich diese mit / 60 in Minunten umrechne, ist das Ergebnis immer noch zu groß.
    Wert in DB ist nämlich auch von heute 08:23 ....
    Kann mir da jemand weiterhelfen?

  • #2
    Es wäre doch t1 zu prüfen, was das StrToFloat(Uhrzeit) ergibt. Bezweifle, dass mit dieser Funktion ein Timestamp ala "31.12.2000 12:00:00" in den korrekten Floatwert gewandelt wird

    Aus

    http://lua-users.org/wiki/OsLibraryTutorial


    os.difftime(t2, t1)

    Calculate the number of seconds between time t1 to time t2.

    > t1 = os.time()
    > -- wait a little while then type....
    > = os.difftime(os.time(), t1) 31
    > = os.difftime(os.time(), t1) 38
    Christian

    Comment


    • #3
      Also das StrToFloat müsste stimmen, hab ich Kollegen auch gefragt, hatte vorher nämlich StrToInt verwendet.
      Aber wieso ist dann die Differenz so extrem groß?

      Comment


      • #4
        verwende jetzt eine andere Funktion: StrToDateTime
        Laut Beschreibung wandelt diese ein Datum + Uhrzeit in eine Zahl um.
        Beispiel:
        d = StrToDateTime('01.01.2005 12:15:30')
        genau so einen Wert bekomm ich aus der Datenbank.
        aber die Differenz aus difftime ist immer noch so extrem groß ...

        Comment


        • #5
          Also das StrToFloat müsste stimmen, hab ich Kollegen auch gefragt, hatte vorher nämlich StrToInt verwendet.
          Aber wieso ist dann die Differenz so extrem groß?
          Wird wohl nur gehen, wenn in dem DB-Feld so etwas wie 3.234523 drin steht.

          StrToFloat und StrToInt wandeln einen String in einen Integer bzw. float. Ein parsen des Wertes dürfte da wohl nicht stattfinden
          Christian

          Comment

          Working...
          X