JavaScript seconds to time string with format hh:mm:ss

前端 未结 30 2060
太阳男子
太阳男子 2020-11-22 07:19

I want to convert a duration of time, i.e., number of seconds to colon-separated time string (hh:mm:ss)

I found some useful answers here but they all talk about conv

30条回答
  •  生来不讨喜
    2020-11-22 07:44

    Here is yet another version, which handles days also:

    function FormatSecondsAsDurationString( seconds )
    {
        var s = "";
    
        var days = Math.floor( ( seconds / 3600 ) / 24 );
        if ( days >= 1 )
        {
            s += days.toString() + " day" + ( ( days == 1 ) ? "" : "s" ) + " + ";
            seconds -= days * 24 * 3600;
        }
    
        var hours = Math.floor( seconds / 3600 );
        s += GetPaddedIntString( hours.toString(), 2 ) + ":";
        seconds -= hours * 3600;
    
        var minutes = Math.floor( seconds / 60 );
        s += GetPaddedIntString( minutes.toString(), 2 ) + ":";
        seconds -= minutes * 60;
    
        s += GetPaddedIntString( Math.floor( seconds ).toString(), 2 );
    
        return s;
    }
    
    function GetPaddedIntString( n, numDigits )
    {
        var nPadded = n;
        for ( ; nPadded.length < numDigits ; )
        {
            nPadded = "0" + nPadded;
        }
    
        return nPadded;
    }
    

提交回复
热议问题