倒计时(一)

倒计时代码(IOS格式/ /)


一 ,  简单总结

             本地测试好用,放到网上,发现ios倒计时不好使了,查看大量资料貌似是因为 ios 有的版本不支持 - - 格式 后来 用 /  替换了 一下.

二, 代码

 

 invokingTime("soccerTime", "2018-06-30 00:00:00");
        /*要求 计算两个时间戳相减 然后拥有倒计时效果
                                    1. 模拟数据 随便用后一天得时间 与当前时间对比
                                    2.  两个时间相减 前一天时间-当前时间  /1000 得到秒
                                    3.  得到秒 之后 setinterval 让time--  然后在函数中输出效果
                                    4.  当秒杀数小于0  就显示已超时
          计算方式 second =  Math.floor(时间戳(默认秒)) - 小时 - 分钟  所有单位都换成秒 
          兼容问题: 因为ios new date 不支持 - - 格式 从数据库取出得时间都是 - - 所以 把 - - 替换成 / /
          red_xx
        */
        function invokingTime(id, time_out) {

            let time_out_time = new Date(time_out.replace(/-/g, "/")).getTime();
            let nowTime = new Date().getTime();
            let total = (time_out_time - nowTime) / 1000;

            function showTime(times) {
                let p = setInterval(function () {
                    /* ---------------------------- 天 : 小时 : 分钟 :秒 */
                    let day = Math.floor(times / (60 * 60 * 24)); //天
                    let hour = Math.floor(times / (60 * 60)) - (day * 24); //小时
                    let minute = Math.floor(times / 60) - (day * 24 * 60) - (hour * 60); //秒
                    let second = Math.floor(times) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60); //秒
                    /* ----------------------------- 小时:分钟:秒 */
                    let newHour = Math.floor(times / (60 * 60))
                    let newMinute = Math.floor(times / 60) - (newHour * 60);
                    let newSecond = Math.floor(times) - (newHour * 60 * 60) - (newMinute * 60);;
                    /* ----------------------------- 时间小于10 前面加0*/
                    /* ----------------------------- 效率貌似三元更好一点??? 没测试*/
                    hour = hour < 10 ? "0" + hour : hour;
                    minute = hour < 10 ? "0" + minute : minute;
                    second = second < 10 ? "0" + second : second;
                    newHour = newHour < 10 ? "0" + newHour : newHour;
                    newMinute = newMinute < 10 ? "0" + newMinute : newMinute;
                    newSecond = newSecond < 10 ? "0" + newSecond : newSecond;
                    // if (hour < 10) hour = '0' + hour;
                    // if (minute < 10) minute = '0' + minute;
                    // if (second < 10) second = '0' + second;
                    // if (newHour < 10) newHour = '0' + newHour;
                    // if (newMinute < 10) newMinute = '0' + newMinute;
                    // if (newSecond < 10) newSecond = '0' + newSecond;
                    // $(`#${id}`).html(`${day}:${hour}:${minute}:${second}`);  天 小时 分 秒
                    $(`#${id}`).html(`${newHour}:${newMinute}:${newSecond}`); // 小时 分 秒
                    times--;
                    if (times < 0) {
                        $(`#${id}`).html(`00:00:00`);
                        // $('#sta_' + id).html('已超时');
                        // $('#op_' + id).html("< a href= "{pigcms{:U('trader_issue_detail')}&id=" + id + "\">详情</ a>");
                        clearInterval(p);

                    }
                }, 1000);
                // timer[id] = p;
            }

            showTime(total);
        }


猜你喜欢

转载自blog.csdn.net/a578024797/article/details/80853953