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 に答える