1

I'm trying to find a stopwatch/count up timer in javascript that includes days, weeks, months, and years for my website.

I've tried finding this already but all of the things I found only had minutes and seconds.

One bit of code I've found that I've liked is this:

var minutesLabel = document.getElementById("minutes");
var secondsLabel = document.getElementById("seconds");
var totalSeconds = 0;
setInterval(setTime, 1000);

function setTime() {
  ++totalSeconds;
  secondsLabel.innerHTML = pad(totalSeconds % 60);
  minutesLabel.innerHTML = pad(parseInt(totalSeconds / 60));
}

function pad(val) {
  var valString = val + "";
  if (valString.length < 2) {
    return "0" + valString;
  } else {
    return valString;
  }
}
<label id="minutes">00</label>:<label id="seconds">00</label>

from this question: plain count up timer in javascript , but again this does not have days, weeks, months, and years.

Can someone rewrite this to have days, weeks, months, and years?

Also, this is not a duplicate.

DRESphAl
  • 11
  • 1
  • 5

1 Answers1

1

notice that It's just a simple example not an exact one:

var minutesLabel = document.getElementById("minutes");
    var secondsLabel = document.getElementById("seconds");
    var hours = document.getElementById("hours");
    var days = document.getElementById("days");
    var weeks = document.getElementById("weeks");
    var months = document.getElementById("months");
    var years = document.getElementById("years");
    var totalSeconds =31540000;
    setInterval(setTime, 1000);

    function setTime() {
        --totalSeconds;
        var yearD = parseInt(totalSeconds / (31540000))
        var yearM = parseInt(totalSeconds % (31540000))
        
        var monthD = parseInt(yearM / (2628336.2137829))
        var monthM = parseInt(yearM % (2628336.2137829))
        
        var weekD = parseInt(monthM / (604876.71234816079959))
        var weekM = parseInt(monthM % (604876.71234816079959))
        
        var dayD = parseInt(weekM / (86410.958906880114228))
        var dayM = parseInt(weekM % (86410.958906880114228))
        
        var hourD = parseInt(dayM / (3600))
        var hourM = parseInt(dayM % (3600))
        
        var minD = parseInt(hourM / (60))
        var secD = parseInt(hourM % (60))
       
        
        
        secondsLabel.innerHTML = pad(secD);
        minutesLabel.innerHTML = pad(minD);
        hours.innerHTML = pad(hourD);
        days.innerHTML = pad(dayD);
        weeks.innerHTML = pad(weekD);
        months.innerHTML = pad(monthD);
        years.innerHTML = pad(yearD);
    }

    function pad(val) {
        var valString = val + "";
        if (valString.length < 2) {
            return "0" + valString;
        } else {
            return valString;
        }
    }
years<label id="years">00:</label>
    months<label id="months">00:</label>
    weeks<label id="weeks">00:</label>
    days<label id="days">00:</label>
    hours<label id="hours">00</label>
    <label id="minutes">00</label>:<label id="seconds">00</label>