js实现倒计时功能(根据开始时间和需要持续的时间计算)

根据开始时间和需要持续的时间来做一个倒计时的功能
比如我的开始时间为2019-3-12 17:30:00,需要它在30分钟之后过期
思路:开始时间+过期时间=最后的时间
最后的时间-动态的当前时间=倒计时

 <body>
<span id="timer"></span>
<script>
	countdown('2019-3-12 17:30:00',30)  //第一个参数为开始时间,第二个参数为多少分钟后过期
	function countdown(val1,val2) {
		var now=new Date(val1);  //处理开始时间
		var minutes=Number(val2);  //处理输入的过期时间
		var end=now.setMinutes (now.getMinutes () + minutes); //计算最后时间
		var time_now =  new Date().getTime(); //当前时间
		var msec =end - time_now;   //最后时间-当前时间
		if(msec>0){
		let day = parseInt(msec / 1000 / 60 / 60 / 24)
		let hr = parseInt(msec / 1000 / 60 / 60 % 24)
		let min = parseInt(msec / 1000 / 60 % 60)
		let sec = parseInt(msec / 1000 % 60)
		day = day
		hr = hr > 9 ? hr : '0' + hr
		min = min > 9 ? min : '0' + min
		sec = sec > 9 ? sec : '0' + sec,
		document.getElementById('timer').innerHTML=`${day}天${hr}小时${min}分${sec}秒`
		}else{
			clearInterval(tim);
		}
		const that = this
		var tim=setTimeout(function () {
			that.countdown('2019-3-12 17:30:00',30)
		}, 1000)
	}
</script>
</body>

//获取服务器时间,用于防止本机时间错乱的情况下,可用返回数据时头部的时间作为倒计时的当前时间


<script>
	var severtime;	
	var time_now;
	function getServerDate(){
		var request = new XMLHttpRequest();
		request.open('GET', '/',false);
		request.send();
		severtime=new Date(request.getResponseHeader("Date"))
		time_now =  severtime.getTime(); //当前时间
		console.log('time_now',time_now)
	}
getServerDate()
</script>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值