距离2022年双十二倒计时(js)

173 阅读3分钟

假设计算今天到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);  

效果展示:

image.png

    //如果还没有到双十二,那么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);

效果展示:

image.png

            }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、未到双十二

image.png

2、今天就是双十二

image.png

3、已经过了双十二

image.png