_SecondsToDateTime

    • Offizieller Beitrag

    Eine kleine Funktion zum umwandeln von Sekunden in einen String mit Zeitangaben:

    Spoiler anzeigen
    [autoit]


    ; Beispiele für die dynamische Länge des Ausgabestrings
    MsgBox(0, 'Minuten, Sekunden', _SecondsToDateTime(87))
    MsgBox(0, 'Stunden, Minuten, Sekunden', _SecondsToDateTime(3600))
    MsgBox(0, 'Tage, Stunden, Minuten, Sekunden', _SecondsToDateTime(99678))
    MsgBox(0, 'Wochen, Tage, Stunden, Minuten, Sekunden', _SecondsToDateTime(6178912))

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Beispiel für einen Countdown
    #include <Date.au3>
    $bStop = False
    HotKeySet('{ESC}', '_Stop')
    Do
    $iDiff = _DateDiff('s', '2010/01/01 00:00:00', _NowCalc())
    ToolTip(_SecondsToDateTime($iDiff), @DesktopWidth / 2 - 100, 2, '[ESC] = beenden', 1, 4)
    Sleep(500)
    Until $bStop
    Exit

    [/autoit] [autoit][/autoit] [autoit]

    Func _Stop()
    $bStop = True
    EndFunc ;==>_Stop

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Function Name..: _SecondsToDateTime($iSeconds[, $iLang])
    ; Description....: Umwandlung von Sekunden in einen String mit Zeitangaben
    ; Parameter(s)...: $iSeconds = Wert in Sekunden
    ; $iLang
    ; 0 = Ausgabe in deutsch
    ; 1 = Ausgabe in englisch
    ; Return Value...: String (Wochen, Tage, Stunden, Minuten, Sekunden)
    ; Author.........: Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _SecondsToDateTime($iSeconds, $iLang = 0)
    If $iLang < 0 Or $iLang > 1 Then $iLang = 0
    Local $sOut = '', $bCheck = False, $bNegative = False, $aDiv[5] = [604800, 86400, 3600, 60, 1]
    Local $aFormat[5][2] = [['Wochen', 'Weeks'],['Tage', 'Days'],['Stunden', 'Hours'],['Minuten', 'Minutes'],['Sekunden', 'Seconds']]
    If $iSeconds = 0 Then Return '0 ' & $aFormat[4][$iLang]
    If $iSeconds < 0 Then
    $bNegative = True
    $iSeconds = Abs($iSeconds)
    EndIf
    For $i = 0 To 4
    If ($iSeconds >= $aDiv[$i]) Or $bCheck Then
    $sOut &= Int($iSeconds / $aDiv[$i]) & ' '
    If Int($iSeconds / $aDiv[$i]) = 1 Then
    $sOut &= StringTrimRight($aFormat[$i][$iLang], 1) & ', '
    Else
    $sOut &= $aFormat[$i][$iLang] & ', '
    EndIf
    $bCheck = True
    EndIf
    $iSeconds = Mod($iSeconds, $aDiv[$i])
    Next
    If $bNegative Then $sOut = ' - ' & $sOut
    Return StringTrimRight($sOut, 2)
    EndFunc ;==>_SecondsToDateTime

    [/autoit]
  • Hi,
    coole Funktion.
    Gibt es eigentlich eine Autoitfunktion die den Unixtimestamp in eine lesbare Zeit umwandelt?
    Wenn nein und jemand Interesse hat, könnte ich das was einstellen, habe da noch ein kleines Script.

    MfG
    Der_Doc

  • Hi,
    coole Funktion.
    Gibt es eigentlich eine Autoitfunktion die den Unixtimestamp in eine lesbare Zeit umwandelt?
    Wenn nein und jemand Interesse hat, könnte ich das was einstellen, habe da noch ein kleines Script.

    MfG
    Der_Doc

    Hier gibts einige die das machen: https://autoit.de/index.php?page…stamp#post69289

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Ah ok stimmt sorry mein Fehler. Aber stimmt das könnte man echt gebrauchen eine Funktion die das ganz umwandelt, so wie in PHP wo das ja mit der Date() geht.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.