zoukankan      html  css  js  c++  java
  • 小程序秒杀倒计时

    //倒计时
    countDown: function (data,date) { // data为列表数据  此数据内含结束时间endTime    date为服务器时间
    console.log(data)
    var that = this;
    let newDate = (date).replace(/-/g, '/');// 获取服务器时间 转换成都支持的格式
    var systimestamp = new Date(newDate).getTime();//转换成时间戳
    var time = setInterval(function () { // 循环执行
    systimestamp = (systimestamp/1000+1)*1000;//服务器时间戳执行+1秒
    console.log('服务器时间倒计时' + systimestamp)
    var spikeFruitList = addHHMMSSToListData2(data, systimestamp);
    console.log('倒计时集合'+spikeFruitList)
    that.setData({
    spikeFruitList: spikeFruitList
    })
    }, 1000);
    }
     
    const addHHMMSSToListData2 = (data, systimestamp) => {
    var result = data;
    var goingList = new Array();
    for (let i = 0; i < result.length; i++) {
    var expiryTime = result[i].endTime;
    console.log('结束时间+' + result[i].endTime);
    var futureTime = new Date(expiryTime).getTime();
    result[i] = addHHMMSSToList2(result[i], systimestamp, futureTime);
    if (result[i].h_h == '00' && result[i].m_m == '00' && result[i].s_s == '00') {
    //此处如果时间到了 不在加入集合中 列表也就不再显示倒计时数据
    } else {
    goingList.push(result[i]);
    }
    }
    return goingList;
    }
     
     
    const addHHMMSSToList2 = (result, nowtimestamp, comparetimestamp) => {
    var nowTime = nowtimestamp;// 当前时间的时间戳
    var futureTime = comparetimestamp;// 比较时间的时间戳
    // 未来的时间减去现在的时间 ;
    var resTime = (futureTime - nowTime) / 1000;
    // 结束时间
    var zero = futureTime - nowTime;
    if (zero >= 0) { // 认为还没有到达结束的时间
    result.h_h = addHH(resTime);
    result.m_m = addMM(resTime);
    result.s_s = addSS(resTime);
    } else {
    result.h_h = '00';
    result.m_m = '00';
    result.s_s = '00';
    }
    return result;
    }

    // 时间转换
    function timestampToTime(s) {
    var h = Math.floor(s / 3600 % 24);
    var min = Math.floor(s / 60) % 60;
    var sec = s % 60;
    h = add(h);
    min = add(min);
    sec = add(sec);
    return h + ':' + min + ':' + sec
    }

    // 添 0
    function add(m) {
    return m < 10 ? '0' + m : m
    }
    //时
    function addHH(s) {
    var h = Math.floor(s / 3600 % 24);
    return add(h);
    }
    //分
    function addMM(s) {
    var min = Math.floor(s / 60) % 60;
    return add(min);
    }
    //秒
    function addSS(s) {
    var sec = s % 60;
    return add(sec);
    }
     
     
     
     
     
    页面集合取值
    {{item.h_h}}:{{item.m_m}}:{{item.s_s}}
     
    效果图:
  • 相关阅读:
    hdu 1296
    hdu 2101
    hdu 2100
    codeforces 3C
    codeforces 2A
    codeforces 1B
    codeforces 811B
    关于sws_scale() 段错误
    cf 1288 D. Minimax Problem (好题)(二分+二进制表状态+枚举)
    opencv4 鼠标事件 鼠标画线条
  • 原文地址:https://www.cnblogs.com/it66/p/11159326.html
Copyright © 2011-2022 走看看