活动倒计时-天时分秒(兼容ios,定时器的使用以及其注意事项)

时间:2020-01-15
本文章向大家介绍活动倒计时-天时分秒(兼容ios,定时器的使用以及其注意事项),主要包括活动倒计时-天时分秒(兼容ios,定时器的使用以及其注意事项)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

倒计时代码(兼容ios)

    timer(){
        let u = navigator.userAgent; 
        if(!!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)){  //ios端
            let iosPreTime=this.predate.split(/[- :]/)  //ios端与安卓端时间格式不同,需做兼容处理
            let preTime = new Date(iosPreTime[0],iosPreTime[1]-1,iosPreTime[2],iosPreTime[3],iosPreTime[4],iosPreTime[5]).getTime()
            this.countTimes=setInterval(()=>{
                let nowTime = new Date().getTime();
                let obj = null;
                if(preTime - nowTime > 0){
                    let time = (preTime - nowTime) / 1000;
                    let day = parseInt(time / (60 * 60 * 24));
                    let hou = parseInt(time % (60 * 60 * 24) / 3600);
                    let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
                    let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
                    obj = {
                        day: day<10?'0'+day:day,
                        hou: hou<10?'0'+hou:hou,
                        min: min<10?'0'+min:min,
                        sec: sec<10?'0'+sec:sec
                    };
                    this.timing = obj.day + '天' + obj.hou + '时' + obj.min + '分' + obj.sec + '秒';
                } else { 
                    obj = {day:'00',hou:'00',min:'00',sec:'00'};
                    clearInterval(this.countTimes)
                }
            },1000)
        }else{   //非ios端 --- 安卓端,pc端
            let preTime = new Date(this.predate).getTime()   //注意后端接口返回的predate格式应为 2020-02-02 20:20:20
            this.countTimes=setInterval(()=>{
                let nowTime = new Date().getTime();
                let obj = null;
                if(preTime - nowTime > 0){
                    let time = (preTime - nowTime) / 1000;
                    let day = parseInt(time / (60 * 60 * 24));
                    let hou = parseInt(time % (60 * 60 * 24) / 3600);
                    let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
                    let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
                    obj = {
                        day: day<10?'0'+day:day,
                        hou: hou<10?'0'+hou:hou,
                        min: min<10?'0'+min:min,
                        sec: sec<10?'0'+sec:sec
                    };
                    this.timing= obj.day + '天' + obj.hou + '时' + obj.min + '分' + obj.sec + '秒';
                } else { 
                    obj = {day:'00',hou:'00',min:'00',sec:'00'};
                    clearInterval(this.countTimes)
                }
            },1000)
        }
    },

原文地址:https://www.cnblogs.com/huihuihero/p/12195643.html