JavaScript Stopwatch

by robdodson

HTML

<script src="http://underscorejs.org/underscore-min.js"></script>

JavaScript

var hour = 3600000,
    minute = 60000,
    second = 1000
    time = hour * 2;

var interval = window.setInterval(function() {
    var remainder = time,
        numHours,
        numMinutes,
        numSeconds,
        output = "";
    
    numHours = String(parseInt(remainder / hour, 10));
    remainder -= hour * numHours;
    
    numMinutes = String(parseInt(remainder / minute, 10));
    remainder -= minute * numMinutes;
    
    numSeconds = String(parseInt(remainder / second, 10));
    
    output = _.map([numHours, numMinutes, numSeconds], function(str) {
        
        if (str.length === 1) {
            str = "0" + str;
        }
        
        return str;
    }).join(":");
    
    console.log(output);
    
    time -= second;
    
}, second);

$(window).click(function() {
    window.clearInterval(interval);
});