Seite 1 von 1

UNIX-Time

Verfasst: Do, 23. Jan 2020 17:12
von miwe-pos
Hat jemand eine Function um das Normale Datums- und Zeitformat in UNIX TIME umzuwandeln?

Re: UNIX-Time

Verfasst: Do, 23. Jan 2020 18:52
von ramses
Hallo

Ich verwende oft diese.
Sie basiert auf einem Beitrag von Hubert hier im Forum. Es gäbe noch eine Variante mit API Calls ....
Das verhalten mit Sommer/Wintertzeit musst du noch überprüfen.

Code: Alles auswählen


// ----------------------------------------------------------
// Aufruf:
// TimeStampUnix( nil, nil, .t. )    --> Timestamp aktuelles Datum und  Zeit in  milliSekunden
// TimeStampUnix( nil, nil, .f. )    --> Timestamp aktuelles Datum und  Zeit in  Sekunden
//
// xDatum    =  Datum als String  18.12.19  oder Datumswert
// xSeconds  =  Sekunden als String "12:01:59"  oder  Nummerischer Wert


function MakeUnixTimeStamp(xDatum,xSeconds,lmilliSec)     // siehe v_vi11.prg // w_tools.prg
   LOCAL dTestTag, nTage
   LOCAL dUnixStart     := ctod("01.01.1970")
   LOCAL nUnixTimeStamp := 0

   default lMilliSec to .t.

   if xDatum = NIL
      xDatum := date()
      dTestTag := xDatum
   elseif valtype(xDatum) = "C"
      xDatum := ctod( xDatum )
   endif

   if  xSeconds = NIL
      xSeconds := seconds()
      if date() <> dTestTag
         xSeconds := 86399
      endif
   elseif valtype(xSeconds) = "C"
      xSeconds := timetosec( xSeconds)
   endif

   xSeconds := int(xSeconds)

   nTage := xDatum - dUnixStart

   nUnixTimeStamp := int( nTage * 86400 + xSeconds )

   if lMilliSec
        nUnixTimeStamp := nUnixTimeStamp * 1000
   endif

return( nUnixTimeStamp )


Re: UNIX-Time

Verfasst: Mi, 12. Feb 2020 10:22
von miwe-pos
Danke Ramses!
Funktioniert sehr gut.
ich habe auch die Umkehrung daraus entwickkelt.
Wird für die TSE-kommunikation benötigt.