2

我们的网站上有一个在线测验部分,它有一个 JavaScript 代码,用于计算我们的测试人员参与特定测试的时间:

小提琴

此代码中的 526 表示从测验开始经过的秒数

document.writeln("<span id=\"time_online1\"></span>");
zi_inceput1 = new Date();
ceas_start1 = zi_inceput1.getTime();

function initStopwatch1() {
    var timp_pe_pag1 = new Date();
    return ((timp_pe_pag1.getTime() + (1000 * 526) - ceas_start1) / 1000);
}

var time = 5 * 60;

function getSecs1() {
    var tSecs1 = Math.round(initStopwatch1());
    var iSecs1 = time - tSecs1 % 60;
    var tMins1 = Math.round(iSecs1 / 60);
    var iMins1 = time - tMins1 % 60;

    var sSecs1 = iSecs1 % 60;
    var sMins1 = iMins1 % 60;



    if (sMins1 === '0' && sSecs1 === '0') {
        alert('time is up and you can not continue, the test is submited.');
        document.getElementById('time_online1').innerHTML = "times up";
        document.qs.submit();
    } else {

        document.getElementById('time_online1').innerHTML = sMins1 + ":" + sSecs1;
        window.setTimeout('getSecs1()', 1000);

    }

}
window.setTimeout('getSecs1()', 1000)

现在我想添加一个名为“测试时间限制”的新功能,例如用户只有 60 分钟进行测试:所以计数器应该开始倒计时。

4

1 回答 1

2

嗨,这是您修改后的功能,它确实倒计时功能
Javascript

document.writeln("<span id=\"time_online1\"></span>");
zi_inceput1 = new Date();
ceas_start1 = zi_inceput1.getTime();

function initStopwatch1() {
    var timp_pe_pag1 = new Date();
    return ((timp_pe_pag1.getTime() + (1000 * 0) - ceas_start1) / 1000);
}
var tim = 05;
function getSecs1() {
    var tSecs1 = Math.round(initStopwatch1());
    if((tim-tSecs1)>=0)
    {
    var iSecs1 = (tim-tSecs1) % 60;

    var iMins1 = Math.round((tSecs1 - 30) / 60);
    var iHour1 = Math.round((iMins1 - 30) / 60);
    var iMins1 = iMins1 % 60;
    var min = Math.floor((tim-tSecs1) / 60);
    var iHour1 = iHour1 % 24;
    var sSecs1 = "" + ((iSecs1 > 9) ? iSecs1 : "0" + iSecs1);
    var sMins1 = "" + ((iMins1 > 9) ? iMins1 : "0" + iMins1);
    var sHour1 = "" + ((iHour1 > 9) ? iHour1 : "0" + iHour1);
    document.getElementById('time_online1').innerHTML = min + ":" + sSecs1;
    window.setTimeout('getSecs1()', 1000);
}
else
    alert("time up");
}
window.setTimeout('getSecs1()', 1000)​

您可以在jsfiddle上测试解决方案 。这是否完成了你的要求哥们..

更新了西北。

于 2012-06-08T06:35:56.373 回答