侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

效果1: 三年以来再一次接触JS,比较蛋疼的日期开始了。

2023-12-12 星期二 / 0 评论 / 0 点赞 / 33 阅读 / 4703 字

当一个页面有一个表格,表格的数据是循环迭代得到的,里面有一列时间列,需要在另外一列显示和当前时间的时间差。页面使用:<script type="text/javascript"> var match


当一个页面有一个表格,表格的数据是循环迭代得到的,里面有一列时间列,需要在另外一列显示和当前时间的时间差。
页面使用:
<script type="text/javascript">
              var matches = document.getElementsByName("countdown");//取得每条数据出发时间,把它当成倒计时的结束时间
              var lessTimeShows = document.getElementsByName("lessTimeShow");//取得显示剩余时间的所有对象
              for(var i=0;i<matches.length;i++){
                  var startTime = matches[i].value;
                  var lessTimeShow = lessTimeShows[i];
                  startTime = startTime.replace(/-/g,"/");//转换时间格式为:yyyy-MM-dd HH:mm:ss
                  countdownTimer(startTime,lessTimeShow);
              }
</script>

js代码:

/**
 * @param {Object} obj   倒计时时间 格式为yyyy-MM-dd HH:mm:ss
 * @param {Object} param 显示到哪个目标对象
 */

function countdownTimer(obj, param) {
    var flag = false;
    var interValObj = window.setInterval(function() {
        if (!flag) {
            flag = setRemainTime(obj, param, flag);
        } else {
            window.clearInterval(interValObj);
        }
    }, 1000); //间隔函数,1秒执行
}

/**
 * 检查时间是否是小于10,如果小于10,在前面位加0
 * @param {Object} i
 */
function checkTime(i) {
    if (i < 10) {
        i = "0" + i;
    }
    return i;
}

/**
 * 设置保持的时间
 * @param {Object} SysSecond   传递的时间
 * @param {Object} showParam   显示的目标对象
 * @param {Object} flag        标志,如果倒计时时间为0,则清除这个倒计时
 * @return {TypeName}          是否倒计时时间结束了
 */
function setRemainTime(SysSecond, showParam, flag) {
    SysSecond = parseInt((new Date(SysSecond) - new Date()) / 1000);
    if (SysSecond > 0) {
        var dd = parseInt(SysSecond / 60 / 60 / 24, 10);//计算剩余的天数  
        var hh = parseInt(SysSecond / 60 / 60 % 24, 10);//计算剩余的小时数  
        var mm = parseInt(SysSecond / 60 % 60, 10);//计算剩余的分钟数
        var ss = parseInt(SysSecond % 60, 10);//计算剩余的秒数

        dd = checkTime(dd);
        hh = checkTime(hh);
        mm = checkTime(mm);
        ss = checkTime(ss);
        showParam.innerHTML = dd + "天" + hh + "时" + mm + "分" + ss + "秒";
        flag = false;
        return flag;
    } else {
        //剩余时间小于或等于0的时候,就停止间隔函数
        //window.clearInterval(interValObj);
        //这里可以添加倒计时时间为0后需要执行的事件
        showParam.innerHTML = "结束";
        flag = true;
        return flag;
    }
}




广告 广告

评论区