zoukankan      html  css  js  c++  java
  • 考试剩余时间倒计时

    方法:

    <script type="text/javascript">

    $(function () {

    //默认加载定时器
    dtstart = new Date();
    setTimeout(function () { TestTime(dtstart, dtstart, "@sumss", 0); });

    })

    var t = $("#lefttimer");//剩余时间显示标签

    //第一次循环

    function TestTime(dtstart, dtup, sums, n) {

    dt = new Date();
    var dates = Math.abs(dt - new Date(dtstart)) / 1000;//当前时间与考试开始时间间隔
    var sss = @sumss - dates;//考试剩余总秒数
    var ss = parseInt(sss % 60);
    var hh = parseInt(sss / 60 / 60 % 24);
    var mm = parseInt(sss / 60 % 60);

    if (ss < 10 && ss >= 0) {
    ss = "0" + ss;
    }
    if (hh < 10 && hh >= 0) {
    hh = "0" + hh;
    }
    if (mm < 10 && mm >= 0) {
    mm = "0" + mm;
    }

    t.html(hh+ "&nbsp;:&nbsp;" + mm + "&nbsp;:&nbsp;" + ss);
    var dt1 = new Date();
    setTimeout(function () { TestTimes(dt, dt1, sss); }, 1000);
    }


    //不在考试期间修改时间时
    function TestTimes(dtstart, dtup, sums) {

    dt = new Date();
    var s = Math.abs(dt - dtup) / 1000;//当前时间和上一次循环的当前时间相差秒数

    if (s > 5 || s < -5) {
    TestTimes2(dtstart, dtup, sums);
    }
    else {
    var dates = Math.abs(dt - dtstart) / 1000;//当前时间与考试开始时间间隔
    var sss = sums - dates;//考试剩余总秒数
    var ss = parseInt(sss % 60);
    var hh = parseInt(sss / 60 / 60 % 24);
    var mm = parseInt(sss / 60 % 60);
    if (ss < 10 && ss >= 0) {
    ss = "0" + ss;
    }
    if (hh < 10 && hh >= 0) {
    hh = "0" + hh;
    }
    if (mm < 10 && mm >= 0) {
    mm = "0" + mm;
    }

    t.html(hh + "&nbsp;:&nbsp;" + mm + "&nbsp;:&nbsp;" + ss);

    if (hh <= 0 && mm <= 0 && ss <= 0) {

    setTimeout(function () { timeisUp(); }, 1000);
    }
    else {

    var dt1 = new Date();
    var s = Math.abs(dt - dt1) / 1000;
    if (s > 6 || s < -6) {
    TestTimes2(dtstart, dtup, sums);
    }
    setTimeout(function () { TestTimes(dt, dt1, sss); }, 1000);
    }
    }


    }

    //在考试期间修改客户端时间

    function TestTimes2(dtstart, dtup, sums) {

    //获取服务器当前时间

    $.post("/Student/Attestation/GetNoew", function (data) {
    var dt = new Date();
    var dates = Math.abs(new Date(data) - new Date("@startTime")) / 1000;//当前时间与考试开始时间间隔
    var sss = @sumss -dates;//考试剩余总秒数
    var ss = parseInt(sss % 60);
    var hh = parseInt(sss / 60 / 60 % 24);
    var mm = parseInt(sss / 60 % 60);
    if (ss < 10 && ss>=0) {
    ss = "0" + ss;
    }
    if (hh < 10 && hh >= 0) {
    hh = "0" + hh;
    }
    if (mm < 10 && mm >= 0) {
    mm = "0" + mm;
    }

    t.html(hh + "&nbsp;:&nbsp;" + mm + "&nbsp;:&nbsp;" + ss);
    if (hh <= 0 && mm <= 0 && ss <= 0) {

    setTimeout(function () { timeisUp(); }, 1000);
    }
    else {
    var dt1 = new Date();
    setTimeout(function () { TestTimes(dt, dt1, sss); }, 1000);
    }
    })


    }

    </script>

  • 相关阅读:
    第十八篇:在SOUI中实现PreTranslateMessage
    第十七篇:使用窗口的cache属性加速SOUI的渲染
    通过驱动向打印机发送一段(ESC)控制指令
    转一个希尔排序
    关于Memo或者Edit之类控件, 直接设置Text无法撤销的解决方案
    关于创建无窗体程序的一点心得
    在Vista或更高版本Windows系统中, 获取超大图标的办法
    随笔里的标签为啥不能用空格分隔??
    一个ICMP单元
    Delphi XE5 与其他版本共存
  • 原文地址:https://www.cnblogs.com/zyq-dan/p/7477972.html
Copyright © 2011-2022 走看看