0

I have an elapsed time functionality but the elapsed time gets printed in decimals. Example 10.102 seconds when I want it to be just 10 seconds. How do I achieve that?

var startTime = new Date();


//Stopwatch 
sleep (30000);
var endTime = new Date();
var seconds = (endTime.getTime() - startTime.getTime()) / 1000;
print("Elapsed Time is " + seconds + " seconds");

3 Answers3

0

I really love this method of displaying my time from seconds -> 00:00:00 or 00:00 or 00; some more formatting needed.

    function ToHHMMSS(secs) {
        let sec_num = parseInt(secs, 10);
        let hours = Math.floor(sec_num / 3600);
        let minutes = Math.floor(sec_num / 60) % 60;
        let seconds = sec_num % 60;
        return [hours, minutes, seconds].map(t => t < 10 ? "0" + t : t).filter((t, i) => t !== "00" || i > 0).join(":");
    }

    console.log(ToHHMMSS(10.2));
    console.log(ToHHMMSS(10.32));
    console.log(ToHHMMSS(10.2));
    console.log(ToHHMMSS(11110.2));
    console.log(ToHHMMSS(10.2));
    console.log(ToHHMMSS(310.2));
    console.log(ToHHMMSS(120.2));
BGPHiJACK
  • 1,277
  • 1
  • 8
  • 16
0

I would look into learning some JavaScript. There are a ton of free resources.

var startTime = new Date();


function timer() {
  var endTime = new Date();
  var timeDiff = endTime - startTime;
  timeDiff /= 1000;
  var seconds = Math.round(timeDiff % 60);
  console.log("Elapsed Time is " + seconds + " seconds");
}


//Stopwatch 
setTimeout(timer, 2523);
whoacowboy
  • 6,982
  • 6
  • 44
  • 78
0

Use parseInt() to keep the seconds only.

let date1 = new Date();
let date2 = new Date();
date1.setMilliseconds(date1.getMilliseconds() - 3712);
let diff = date2 - date1; // in ms

console.log(date1.getTime());
console.log(date2.getTime());
console.log(`${parseInt(diff / 1000)} seconds`); // "3 seconds"
h0ly
  • 161
  • 1
  • 8