假设计算今天到2022年12月12日还有多长时间, 如果今天的日期超过了2022年12月12日那么已经过去了多长时间
//封装函数 备用
// 数字小于10补0的方法
function doubleNum(n){
return n<10?'0'+n:n;;
}
//设置定时器
setInterval(()=>{
//获取当前时间
let currentTime=new Date()
//获取2022年12月12日时间,未来时间
let futureTime=new Date('2022-12-12 00:00:00')
//变量 times未来时间和当前时间之间间隔的秒数=(未来时间转为毫秒-当前时间转为毫秒)/100毫秒(1秒===100毫秒)
let times=(futureTime.getTime()-currentTime.getTime())/1000
console.log('currentTime===',currentTime);
console.log('futureTime===',futureTime);
console.log('times===',times);
效果展示:
//如果还没有到双十二,那么times即为正值
//所以当times>0时
if(times>0){
//获取天数 1天=86400秒
// day=间隔的秒数/一天的秒数 取整可以得到间隔的整天数
let day=parseInt(times/86400)
//获取小时 除去整天后剩余的间隔秒数包含几小时 1小时=3600秒
// hour=(间隔的秒数%一天的秒数 )/一小时的秒数 取整可以得到间隔的整小时
let hour=parseInt((times%86400)/3600)
//获取分钟 除去整天和整小时后剩余的间隔秒数包含几分钟 1分钟=60秒
// min=(间隔的秒数%一天的秒数 )%一小时的秒数)/一分钟的秒数 取整可以得到间隔的整分钟
let min=parseInt(((times%86400)%3600)/60)
//获取秒数 (间隔的秒数%一天的秒数 )%一小时的秒数)%一分钟的秒数 取整可以得到间隔的整秒
let second=parseInt(((times%86400)%3600)%60)
//将获得的整天、小时、分钟、秒数使用字符串拼接的方式写入html中,同时使用先前封装的函数小于10,在前面补0的函数,保证其时间格式为 : xx天 xx:xx:xx
document.body.innerHTML = '距离 2022年12月12日 还有 '+day+'天 '+doubleNum(hour)+':'+doubleNum(min)+':'+doubleNum(second);
console.log('day===',day,'|','hour===',hour,'|','min===',min,'|','second===',second);
效果展示:
}else if(-86400<times<=0){
//如果当前时间就是双十二当天,双十二0时<=当前时间<双十二24时
//那么双十二0时-当前时间<=0 ;当前时间=双十二24时的时候 ,双十二0时-当前时间=-86400
//所以当-86400<times<=0时今天是双十二
document.body.innerHTML = '今天是双十二'
//也可以直接展示当前时间,
}else{
//当已经过了双十二,
//获取双十二24时,过去时间
let pastTime = new Date('2022-12-12 24:00:00')
console.log(pastTime);
//变量 times过去时间和当前时间之间间隔的秒数=(当前时间转为毫秒-过去时间转为毫秒)/100毫秒(1秒===100毫秒)
let times2=(currentTime.getTime()-pastTime.getTime())/1000
console.log(times2/86400);
//其他与以上同理,就不再一一赘述
var day = parseInt(times2/86400);
console.log(day);
let hour=parseInt((times2%86400)/3600)
let min=parseInt(((times2%86400)%3600)/60)
let second=parseInt(((times2%86400)%3600)%60)
document.body.innerHTML = '距离 2022年12月12日 已经过去 '+day+'天 '+doubleNum(hour)+':'+doubleNum(min)+':'+doubleNum(second);
}
},1000)
效果展示:
1、未到双十二
2、今天就是双十二
3、已经过了双十二