JSFiddle - React, Tailwind, and code Playground

HTML

<div id="countre3"></div>

JavaScript

function mycountre(countdownId, countdownSeconds, countdownLooping){
        var countre = document.getElementById(countdownId); // get html element
        if (!countre) {
            return;
        }

        var target = new Date().getTime() + 1000 * countdownSeconds; // target time
        var intervalId; // id of the interval
        
        // update function
        function updatecountre(){
            var time = Math.floor((target - new Date().getTime()) / 1000); // countdown time in seconds
            if (time < 0) { // if countdown ends
                if (countdownLooping) { // if it should loop
                    target += 1000 * countdownSeconds; // set new target time
                    time = Math.floor((target - new Date().getTime()) / 1000); // recalculate current time
                } else { // otherwise
                    clearInterval(intervalId); // clear interval
                    time = 0; // set time to 0 to avoid displaying negative values
                }
            }
            
            // split time to seconds, minutes and hours
            var seconds = '0' + (time % 60);
            time = (time - seconds) / 60;
            var minutes = '0' + (time % 60);
            time = (time - minutes) / 60;
            var hours = '0' + time;
            
            // make string from splited values
            var str = hours.substring(hours.length - 2) + ':' + minutes.substring(minutes.length - 2) + ':' + seconds.substring(seconds.length - 2);
            countre.innerHTML = str;
        }

        intervalId = setInterval(updatecountre, 200); // start interval to execute update function periodically
    };
    mycountre(
        'countre3', // id of the html element
        15 * 60, // time in seconds (15min here)
        true // loop after countdown ends?
    );