zoukankan      html  css  js  c++  java
  • 抢购代码

    function newTimeRun(nowTime, beginTime, overTime,classname){
    var unStartTimeLength = new Date(beginTime) - new Date(nowTime),//未开始的时间长度
    //var unStartTimeLength = new Date(beginTime).getTime() - new Date(nowTime).getTime(),//未开始的时间长度
    endTimeLength = new Date(nowTime) - new Date(overTime),//已过期的时间长度
    timingLength = new Date(overTime) - new Date(nowTime);//抢购中的时间长度
    //未开始
    if(unStartTimeLength > 0){
    countDown(unStartTimeLength,function(time){
    var hour = formatNum(time[0] * 24 + time[1]),
    min = formatNum(time[2]),
    sec = formatNum(time[3]);
    classname.html('<span class="timeTxt">离特惠开始还剩 <span class="remain">' + hour + ':' + min + ':' + sec +'</span></span>')
    },
    function(){
    countDown(timingLength,function(time){
    var hour = time[0] * 24 + time[1],
    min = time[2],
    sec = time[3];
    classname.html('<span class="timeTxt">离特惠结束还剩 <span class="remain">' + hour + ':' + min + ':' + sec +'</span></span>');
    },function(){
    classname.html('<span class="timeTxt">本场特惠已结束</span>');
    })
    });
    }
    //过期
    else if(endTimeLength >=0){
    classname.html('<span class="timeTxt">本场特惠已结束</span>');
    }
    //开始-结束
    else{
    countDown(timingLength,function(time){
    var hour = formatNum(time[0] * 24 + time[1]),
    min = formatNum(time[2]),
    sec = formatNum(time[3]);
    classname.html('<span class="timeTxt">离特惠结束还剩 <span class="remain">' + hour + ':' + min + ':' + sec +'</span></span>');
    },function(){
    classname.html('<span class="timeTxt">本场特惠已结束</span>');
    })
    }
    }




    function countDown(times, fn, endFn) {
    if (typeof times === "number") {
    times = calculateTime(times);
    } else if (Object.prototype.toString.apply(times) === "[object Date]") {
    var ms = times.getTime() - new Date().getTime()
    times = calculateTime(ms);
    setTimeout(function () {
    countDown(times, fn, endFn);
    }, ms % 1000);
    return;
    }
    fn(times); // 一开始先执行一次
    var intervalMac = setInterval(function () {
    var timesLen = times.length,
    scales = [24, 60, 60],
    scalesLen = scales.length;
    for (var i = timesLen; i--;) {
    if (times[i] > 0) {
    times[i] = times[i] - 1;
    break;
    }
    // 等于0,非首位的处理
    if (i !== 0) {
    times[i] = scales[scalesLen -(timesLen - i)] - 1;
    } else { // 一直到首位都为0,倒计时结束
    for (var j = 0; j < times.length; j++) {
    times[j] = 0;
    }
    clearInterval(intervalMac);
    return;
    }
    }
    fn(times);
    if(typeof endFn === "function"){
    var isEnd = true;
    for(var i = 0,len = times.length;i < len;i++){
    if(times[i] !== 0){
    isEnd = false;
    break;
    }
    }
    if(isEnd){
    endFn(times);
    }
    }
    }, 1000);
    }
    //把毫秒转换成数组[day, hour, minute, second]
    function calculateTime(time) {
    if (time < 0) {
    return [0, 0, 0, 0];
    }
    time = Math.floor(time / 1000);
    var times = [], scales = [86400, 3600, 60];
    for (var i = 0; i < scales.length; i++) {
    times.push(Math.floor(time / scales[i]));
    time %= scales[i];
    }
    times.push(time);
    return times;
    }

    调用
    $(".box3").each(function(i,elem){
    var date = new Date();

    var uStartTime = $(elem).attr("zy-s-time"),
    uEndTime = $(elem).attr("zy-e-time"),
    timeSpan = $(".timeW",elem);
    newTimeRun(date,uStartTime,uEndTime,timeSpan);
    })

    注意时间格式
  • 相关阅读:
    python实现git操作
    CentOS 安装R包 报错:internet routines cannot be loaded ,如何解决
    CentOS 6.8上安装指定版本的注释软件 VEP,release 93.4
    Anaconda3安装后在Pycharm中报错:ImportError: DLL load failed: 找不到指定的模块
    CentOS编译fastp 0.19.4 时报错/usr/bin/ld: cannot find -lz
    推荐一款非常好用的在线python编辑器——Colaboratory
    mac如何用quick look预览多个文件或者图片
    Pileup 格式详细说明
    CentOS 7 上安装 Django 2.2.4,解决报错:No module named ‘_sqlite3′
    Message: 'chromedriver' executable needs to be available in the path.
  • 原文地址:https://www.cnblogs.com/serene92/p/4286235.html
Copyright © 2011-2022 走看看