zoukankan      html  css  js  c++  java
  • 活动倒计时

    .daojs{ position:fixed; top:0; text-align:center; padding:10px 0; font-size:20px; color:#fff; width:100%; max-width:750px; background:rgba(0,0,0,0.8); filter:progid:DXImageTransform.Microsoft.gradient(startcolorstr=#8F000000,endcolorstr=#8F000000); z-index:999;}
    .daojs .time{ font-size:24px; color:#FF0;}
    <div class="daojs">活动倒计时:<span class="time" id="daojishi"></span></div>
    //倒计时
    var timer = setInterval("leftTimer()",1000); 
    $(function(){ leftTimer(); }) function leftTimer(){ var endTime = new Date(2017,9-1,30,0,0,0);//2017年9月30日00:00:00 var nowTime = new Date(); var leftTime = endTime.getTime() - nowTime.getTime(); //计算剩余的毫秒数 if(leftTime <= 0){ document.getElementById("daojishi").innerHTML = "活动已结束!";
         clearInterval(timer); }
    else{ var days = Math.floor(leftTime / 1000 / 60 / 60 / 24); //计算剩余的天数 var hours = Math.floor(leftTime / 1000 / 60 / 60 % 24); //计算剩余的小时 var minutes = Math.floor(leftTime / 1000 / 60 % 60);//计算剩余的分钟 var seconds = Math.floor(leftTime / 1000 % 60);//计算剩余的秒数 hours = checkTime(hours + days * 24); minutes = checkTime(minutes); seconds = checkTime(seconds); document.getElementById("daojishi").innerHTML = hours+"小时" + minutes+"分"+seconds+"秒"; } } function checkTime(i){ //将0-9的数字前面加上0,例1变为01 if(i<10) { i = "0" + i; } return i; }

    以上获取的是本地时间,如果用户修改了本地时间,那么显示倒计时就不正确了。可以获取服务器时间来解决这个问题,但是每一秒都请求服务器获取时间压力太大。

    所以如果拿服务器时间倒计时最好倒计时到分钟,每分钟请求一次服务器。

    具体实现:修改上面代码中的 nowTime,定时改为1分钟

    var nowTime = new Date($.ajax({async: false}).getResponseHeader("Date"))
    setInterval("leftTimer()",60000); 
  • 相关阅读:
    客户端性能优化
    session、cookie、token的区别
    java 动态代理模式(jdk和cglib)
    java 静态代理模式
    java ReentrantLock 公平锁 非公平锁 测试
    java ReentrantLock结合条件队列 实现生产者-消费者模式 以及ReentratLock和Synchronized对比
    VS2010 开发 VB6.0 activeX控件 dll
    C++CLI语法 在项目中的使用
    word 内容控件属性编辑
    VC调用静态库、动态库
  • 原文地址:https://www.cnblogs.com/lujiulong/p/7607305.html
Copyright © 2011-2022 走看看