JSFiddle - React, Tailwind, and code Playground

Timecode : seconds to HH:MM:SS

by brasofilo

HTML

<input type="text" placeholder="entre com os segundos" id="secs-input" /> <input type="submit" id="converter" value="Converter" />
<p id="result"></p>

CSS

#secs-input {
    width: 150px;
}

JavaScript

// http://stackoverflow.com/a/13904120/1287812
// http://stackoverflow.com/a/6313008/1287812
// http://stackoverflow.com/q/21045010/1287812

String.prototype.toHHMMSS = function () {
    console.log(test(this));
    var sec_num = parseInt(this, 10); // don't forget the second param
    var hours   = Math.floor(sec_num / 3600);
    var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
    var seconds = sec_num - (hours * 3600) - (minutes * 60);
    
    if( hours == 0 ) { hours = ''; }
    else if ( hours   < 10) { hours = "0" + hours + ':'; }
    else hours = hours + ':';

    if(  minutes == 0 ) { minutes = '00:'; }
    else if ( minutes < 10 ) { minutes = "0" + minutes + ':'; }
    else minutes = minutes + ':';

    if ( seconds < 10 ) { seconds = "0" + seconds; }
    
    return hours + minutes + seconds;
}

function test( delta ) {
    // calculate (and subtract) whole days
    var days = Math.floor(delta / 86400);
    delta -= days * 86400;
    
    // calculate (and subtract) whole hours
    var hours = Math.floor(delta / 3600) % 24;
    delta -= hours * 3600;
    
    // calculate (and subtract) whole minutes
    var minutes = Math.floor(delta / 60) % 60;
    delta -= minutes * 60;
    
    // what's left is seconds
    var seconds = delta % 60;  // in theory the modulus is not required
    console.log( days,hours,minutes,seconds );
}
function temposCurtos( time ) 
{
    if( parseInt( time ) == 0 )
        return '';
        
    if( time < 10 )
        return '0' + time;
        
    return time;
}
function segundosParaTempo( total ) 
{
    var sec = temposCurtos( total % 60 );
    
    var min = temposCurtos( parseInt( total / 60 ) );
    var fullmins = ( min != '' ) ? min + ':' : '';
    
    var hours = temposCurtos( parseInt( min / 60 ) );
    var fullhours = ( hours != '' ) ? hours + ':' : '';
    
    return ( fullhours + fullmins + sec );
}


$('#converter').click( function() {
    $('#result').text( $('#secs-input').val().toHHMMSS() );
});