JS设置倒计时问题

今天做倒计时的时候,突然发现倒计时出了问题,多算了8个小时。找了很久才发现问题所在。希望遇到和我一样问题的人能够看到这篇文章,解决掉自己的问题
先看图片的问题:根据今天的2020/9/2 22.26 到 2020/9/3这一天,倒计时应该显示 0天1时33分55秒,但是偏偏就多了8个小时
在这里插入图片描述
问题代码如下:

//倒计时
function countTime() {

	//获取当前时间
	var date = new Date();
	var now = date.getTime();

	//设置截止时间  str=2020-9-3
	var str=document.getElementById("endtime").innerHTML;

	// var str=new Data("2020-9-3 00:00:00");
	// var str=endTime;
	var endDate = new Date(str);
	var end = endDate.getTime();


	//时间差
	var leftTime = end-now;
	//定义变量 d,h,m,s保存倒计时的时间
	var d,h,m,s;

	if (leftTime>=0) {
		d = Math.floor(leftTime/1000/60/60/24);
		h = Math.floor(leftTime/1000/60/60%24);
		m = Math.floor(leftTime/1000/60%60);
		s = Math.floor(leftTime/1000%60);

		//将倒计时赋值到div中
		document.getElementById("_d").innerHTML = d+"天";
		document.getElementById("_h").innerHTML = h+"时";
		document.getElementById("_m").innerHTML = m+"分";
		document.getElementById("_s").innerHTML = s+"秒";

	}else if(!Number.isNaN(leftTime)){	//第一次调用该函数,leftTime的值是NAN
		document.getElementById("overdue").innerHTML='<font color="red">已过期</font>';
		return ;
	}

	//递归每秒调用countTime方法,显示动态时间效果
	setTimeout(countTime,1000);
}

此时执行的是上面的代码,出现了该问题,其实问题出在了赋值上面,上面我给str赋值时,由于我对 endTime做了格式设置,所以 endTime 里面的值是 2020-9-3,但是当我把这个值修改为 2020-9-3 00:00:00 之后,就能够正常显示时间了。
在这里插入图片描述
如果这篇文章有帮到你的话,就请麻烦帮忙点个赞啦!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值