计算elasped的时间并将其以天:小时:分钟:秒的格式表示,在javascript中,时间流逝每秒钟更新一次

计算elasped的时间并将其以天:小时:分钟:秒的格式表示,在javascript中,时间流逝每秒钟更新一次,javascript,datetime,elapsedtime,Javascript,Datetime,Elapsedtime,我试图计算设置日期时间对象和当前时间之间经过的时间。我希望它能够以这种格式显示DD:HH:MM:SS,其中DD是天,HH是小时,MM是分钟,SS是秒。我能够获得总的天,总的小时,总的分钟和总的秒,但我不确定如何以我想要的方式格式化它。请帮忙 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>timer</title>

我试图计算设置日期时间对象和当前时间之间经过的时间。我希望它能够以这种格式显示DD:HH:MM:SS,其中DD是天,HH是小时,MM是分钟,SS是秒。我能够获得总的天,总的小时,总的分钟和总的秒,但我不确定如何以我想要的方式格式化它。请帮忙

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>timer</title>   
</head>
<body >
<div id ="time" name ="timer"></div>

<script>
var myVar = setInterval(myTimer, 1000);

function myTimer() {

  let seconds = 1000 ;
  let minutes = seconds * 60;
  let hours = minutes * 60;
  let days = hours * 24;
  let years = days * 365;


  const startDateTime = new Date("June 2, 2019 12:36:10 AM");
  const newDateTime = new Date();

  let timeDiff = newDateTime - startDateTime;

  let totalSeconds = Math.round(timeDiff/seconds);


  document.getElementById("time").innerHTML = totalSeconds;
}
</script>

</body>

</html>


计时器
var myVar=setInterval(myTimer,1000);
函数myTimer(){
设秒=1000;
分钟=秒*60;
小时=分钟*60;
天数=小时*24;
年=天*365;
const startDateTime=新日期(“2019年6月2日12:36:10上午”);
const newDateTime=新日期();
设timeDiff=newDateTime-startDateTime;
让totalSeconds=数学轮(timeDiff/秒);
document.getElementById(“time”).innerHTML=totalSeconds;
}

我建议您使用类似的库,但如果您想在纯Javascript中执行此操作,您可以将总秒数除以您已经定义的除法参数,并在小于10秒时用零填充

var myVar=setInterval(myTimer,1000);
常数秒=1000;
常数分钟=秒*60;
常数小时=分钟*60;
持续天数=小时*24;
常数年=天*365;
函数myTimer(){
const startDateTime=新日期(“2019年6月2日12:36:10上午”);
const newDateTime=新日期();
让elapsedmillesons=newDateTime-startDateTime;
document.getElementById(“时间”).innerHTML=
`${formattelapsedtime(elapsedmillesons,days)}:${formattelapsedtime(elapsedmillesons,hours,24)}:${formattelapsedtime(elapsedmillesons,minutes,60)}:${formattelapsedtime(elapsedmillesons,seconds,60)};
}
函数格式elapsedtime(elapsedtime、时间单位、基数){
让时间=基数?(elapsedtime/timeunit)%base:elapsedtime/timeunit;
时间=数学。楼层(时间);
时间=时间<10?'0'+时间:时间;
返回时间;
}

计时器

你遇到过这个吗?它为你的汉克们做了所有艰苦的工作。该函数格式化数据,但不计算经过的时间properly@user8964654你说得对,我用的是过去的秒,而我应该用过去的毫秒。现在应该可以正常工作了,没问题!如果你的问题解决了,你可以让其他人知道问题得到了回答。