计算相差的小时,分钟和秒为什么要分别取余%24, %60和%60

计算相差的小时,分钟和秒为什么要分别取余%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>

打印出来的结果感觉是不对的

https://img1.sycdn.imooc.com/climg/18a1086809985b9303870105.jpg

2025/8/10号到2015年9月1号相差的小时数绝对不是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 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师