计算相差的小时,分钟和秒为什么要分别取余%24, %60和%60
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
span {
display: inline-block;
width: 100px;
height: 100px;
background-color: black;
color: white;
line-height: 100px;
text-align: center;
font-size: 40px;
}
</style>
</head>
<body>
<script>
window.addEventListener('load',function(){
var inputTime = new Date('2025-09-01 20:00:00');
console.log(inputTime);
var inputTime = +new Date('2025-09-01 20:00:00');
console.log(inputTime); //倒计时的最终时间
var hour = document.querySelector('.hour');
var minute = document.querySelector('.minute');
var seconds = document.querySelector('.second');
function func1(){
var currentDate = new Date(); //这个是让当前时间变成毫秒
console.log(currentDate);
var currentDate = +new Date(); //这个是让当前时间变成毫秒
console.log(currentDate);
//得到当前时间和倒计时时间的时间差,以毫秒为单位
var distenceTime = inputTime - currentDate;
console.log(distenceTime);
//得到秒
var times = distenceTime / 1000
console.log(times);
var distenceSeconds = times % 60;
console.log(distenceSeconds);
seconds.innerHTML = parseInt(distenceSeconds);
var distenceHour = times / 60 / 60 % 24;
hour.innerHTML = parseInt(distenceHour)
var distenceMinute = times / 60 % 60;
minute.innerHTML = parseInt(distenceMinute);
}
// setInterval(func1,'1000')
func1()
})
</script>
<span class='hour'>10</span>
<span class='minute'>20</span>
<span class="second">31</span>
</body>
</html>对于两个日期的时间差,得到毫秒,然后通过毫秒/1000/60/60,就是得到相差的小时时间,为什么要跟24取余?
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
span {
display: inline-block;
width: 100px;
height: 100px;
background-color: black;
color: white;
line-height: 100px;
text-align: center;
font-size: 40px;
}
</style>
</head>
<body>
<script>
window.addEventListener('load',function(){
var inputTime = new Date('2025-09-01 20:00:00');
console.log(inputTime);
var inputTime = +new Date('2025-09-01 20:00:00');
console.log(inputTime); //倒计时的最终时间
var hour = document.querySelector('.hour');
var minute = document.querySelector('.minute');
var seconds = document.querySelector('.second');
function func1(){
var currentDate = new Date(); //这个是让当前时间变成毫秒
console.log(currentDate);
var currentDate = +new Date(); //这个是让当前时间变成毫秒
console.log(currentDate);
//得到当前时间和倒计时时间的时间差,以毫秒为单位
var distenceTime = inputTime - currentDate;
console.log(distenceTime);
//得到秒
var times = distenceTime / 1000
console.log(times);
var distenceSeconds = times % 60;
console.log('相差的秒数:' + distenceSeconds);
seconds.innerHTML = parseInt(distenceSeconds);
var distenceHour = times / 60 / 60 % 24;
console.log('相差的小时数:' + distenceHour);
hour.innerHTML = parseInt(distenceHour)
var distenceMinute = times / 60 % 60;
console.log('相差的分钟数:' + distenceMinute);
minute.innerHTML = parseInt(distenceMinute);
}
// setInterval(func1,'1000')
func1()
})
</script>
<span class='hour'>10</span>
<span class='minute'>20</span>
<span class="second">31</span>
</body>
</html>打印出来的结果感觉是不对的

2025/8/10号到2015年9月1号相差的小时数绝对不是3小时
3
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小猿
2025-08-11 21:16:52
同学,你好!取余数取的是对时分秒不足24小时、不足60分钟、不足60秒的时间数。例如对24取余是取小时不足24小时的数。如两个小时的时间差是76,76%24=4页面显示的就是4小时,即老师没有显示总的小时数,而是显示不足24小时的数,若同学想显示总的小时数,可以取消对24取余数。将代码
var distenceHour = times / 60 / 60 % 24;改为 var distenceHour = times / 60 / 60 ;
整体代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<style>
span {
display: inline-block;
width: 100px;
height: 100px;
background-color: black;
color: white;
line-height: 100px;
text-align: center;
font-size: 40px;
}
</style>
</head>
<body>
<script>
window.addEventListener('load',function(){
// var inputTime = new Date('2025-09-01 20:00:00');
// console.log(inputTime);
var inputTime = +new Date('2025-09-01 20:00:00');
console.log(inputTime); //倒计时的最终时间
var hour = document.querySelector('.hour');
var minute = document.querySelector('.minute');
var seconds = document.querySelector('.second');
function func1(){
// var currentDate = new Date(); //这个是让当前时间变成毫秒
// console.log(currentDate);
var currentDate = +new Date(); //这个是让当前时间变成毫秒
console.log(currentDate);
console.log(inputTime)
//得到当前时间和倒计时时间的时间差,以毫秒为单位
var distenceTime = inputTime - currentDate;
console.log(distenceTime);
//得到秒
var times = distenceTime / 1000
console.log(times);
var distenceSeconds = times % 60;
console.log(distenceSeconds);
seconds.innerHTML = parseInt(distenceSeconds);
var distenceHour = times / 60 / 60 ;
console.log(distenceHour)
hour.innerHTML = parseInt(distenceHour)
var distenceMinute = times / 60 % 60;
minute.innerHTML = parseInt(distenceMinute);
}
// setInterval(func1,'1000')
func1()
})
</script>
<span class='hour'>10</span>
<span class='minute'>20</span>
<span class="second">31</span>
</body>
</html>祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星