js 倒计时-两个时间段倒计时

业务需求:分别在规定的两个时间段内进行 抢券倒计时
例如:时间一: 2020-01-16 00:00:00 开始抢券,2020-01-16 23:59:59 結束抢券
时间二: 2020-01-17 12::00:00 开始抢券 2020-01-17 23:59:59 結束抢券
html

<p class="time"></p>

Js

let clearFirstTime = null // 定时器
let curDay = new Date()// 当前时间
let hour = '00'
let minute = '00'
let second = '00'
let fristStartTime = '2020-01-16 00:00:00'// 第一次开始时间
let fristEndTime = '2020-01-16 23:59:59'// 第一次结束时间
let secondStartTime = '2020-01-17 12::00:00'// 第二次开始时间
let secondEndTime = '2020-01-17 23:59:59'// 第二次结束时间
clearFirstTime = setInterval(setStarTime, 1000)

function setStarTime() {
	let that = this
	let date = new Date()
	let now = date.getTime()
	let endDate = new Date(fristStartTime)
	let end = endDate.getTime()
	let leftTime = end - now
	let d = null
	let h = null
	let m = null
	let s = null
	// console.log(leftTime)
	if (leftTime >= 0) {
		d = Math.floor(leftTime / 1000 / 60 / 60 / 24)
		h = Math.floor(leftTime / 1000 / 60 / 60 % 24)
		h = d * 24 + h
		m = Math.floor(leftTime / 1000 / 60 % 60)
		s = Math.floor(leftTime / 1000 % 60)
		hour = h < 10 ? '0' + h : h
		minute = m < 10 ? '0' + m : m
		second = s < 10 ? '0' + s : s
	} else {
		reducedTime()
		hour = '00'
		minute = '00'
		second = '00'
	}
	document.querySelectorAll('.time')[0].innerHTML = hour + '小时' + minute + '分' + second + '秒'
	// console.log(hour, minute, second)
}

function reducedTime() {
	let dayBlon = tab(curDay, fristEndTime)//  判断当前时间和第一次倒计时时间
	console.log(dayBlon)
	if (!dayBlon) {
		clearInterval(clearFirstTime)
		clearFirstTime = setInterval(setSecondTime, 1000)
	}
}

function tab(date1, date2) {
	var oDate1 = new Date(date1)
	var oDate2 = new Date(date2)
	// console.log('oDate1' + oDate1.getTime())
	// console.log('oDate2' + oDate2.getTime())
	if (oDate1.getTime() < oDate2.getTime()) {
		return true
	} else {
		return false
	}
}

function setSecondTime() {
	let that = this
	let date = new Date()
	let now = date.getTime()
	let endDate = new Date(secondStartTime)
	let end = endDate.getTime()
	let leftTime = end - now
	let d = null
	let h = null
	let m = null
	let s = null
	if (leftTime >= 0) {
		d = Math.floor(leftTime / 1000 / 60 / 60 / 24)
		h = Math.floor(leftTime / 1000 / 60 / 60 % 24)
		h = d * 24 + h
		m = Math.floor(leftTime / 1000 / 60 % 60)
		s = Math.floor(leftTime / 1000 % 60)
		hour = h < 10 ? '0' + h : h
		minute = m < 10 ? '0' + m : m
		second = s < 10 ? '0' + s : s
	} else {
		clearInterval(clearFirstTime)
		hour = '00'
		minute = '00'
		second = '00'
	}
	document.querySelectorAll('.time')[0].innerHTML = hour + '小时' + minute + '分' + second + '秒'
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值