<section>
<p>请在以下时间前进行购买</p>
<span class="daySpan"></span>
<span class="hourSpan"></span>
<span class="minuteSpan"></span>
<span class="secondSpan"></span>
<p>感谢您的惠顾</p>
</section>
<script>
// 倒计时效果
const daySpan = document.querySelector('.daySpan'),
hourSpan = document.querySelector('.hourSpan'),
minuteSpan = document.querySelector('.minuteSpan'),
secondSpan = document.querySelector('.secondSpan'),
// 最终的时间
deadline = new Date("2024-03-03T00:00:00")
// deadline = new Date("2024-3-3:00:00")
function countdown () {
// 获取当前的时间 获取希望达到的时间和现在的时间之间的差
const now = new Date(), timeRemaining = deadline - now
let day, hour, minute, second
if (timeRemaining < 0) { return 0 }
// // 全部除以1000转化为秒, 在电脑中时间是以毫秒数进行计算的,所以我们进行计算之后分别秒,分,时,天
second = Math.floor(timeRemaining / 1000 % 60) // %60 对秒进行取余 得到秒数
minute = Math.floor(timeRemaining / 1000 / 60 % 60)
hour = Math.floor(timeRemaining / 1000 / 60 / 60 % 24)
day = Math.floor(timeRemaining / 1000 / 60 / 60 / 24) // 得到天数
day = padZero(day) // 添加前导零
hour = padZero(hour)
minute = padZero(minute)
second = padZero(second)
console.log('day', day)
daySpan.innerHTML = day + '天'
hourSpan.innerHTML = hour + "时"
minuteSpan.innerHTML = minute + "分"
secondSpan.innerHTML = second + "秒"
setTimeout(countdown, 1000)
}
function padZero (value) {
return value < 10 ? '0' + value : value // 如果小于10,则添加前导零
}
countdown()
</script>
**需要注意的点: deadline = new Date(“2024-03-03T00:00:00”)
**
日期字符串通常应该遵循特定的格式,
如"YYYY-MM-DDTHH:mm:ss"
或"MM/DD/YYYY HH:mm:ss"等