2014-02-26 75 views
-1

我正在使用JavaScript Timer來製作測驗系統,它使用會話開始時間來計算定時器工作所需的時間。它在一些系統上工作正常,但不是全部。
可以請一些幫助我..?JavaScript定時器:使用會話開始時間不工作

var ct = setInterval("calculate_time()",100); // Start clock. 
function calculate_time() 
{ 
    var end_time = "<?php echo $_SESSION['start_time']; ?>"; // Get end time from session variable (total time in seconds). 
    var dt = new Date(); // Create date object. 
    var time_stamp = dt.getTime()/1000; // Get current minutes (converted to seconds). 
    var total_time = end_time - Math.round(time_stamp); // Subtract current seconds from total seconds to get seconds remaining. 
    var mins = Math.floor(total_time/60); // Extract minutes from seconds remaining. 
    var secs = total_time - (mins * 60); // Extract remainder seconds if any. 

    if(secs < 10){secs = "0" + secs;} // Check if seconds are less than 10 and add a 0 in front. 
    document.getElementById("txt").value = mins + ":" + secs; // Display remaining minutes and seconds. 

    // Check for end of time, stop clock and display message. 
    if(mins <= 0) 
    { 
    if(secs <= 0 || mins < 0) 
    { 
     clearInterval(ct); 
     document.getElementById("txt").value = "0:00"; 
     var form = document.createElement("form"); 
     form.action = "http://www.example.org/q/conflinux/expire_me.php"; 
     form.method = "post" 
     document.body.appendChild(form); 
     form.submit();  
    } 
    } 
} 

..... 
..... 

<form> <input id="txt" readonly> </input></form> 
+0

此外,包括這是不工作的瀏覽器。 –

+0

刪除這些「引號」 ct = setInterval(「calculate_time()」,100); –

+0

已經在我的回答和他的新代碼 – mplungjan

回答

1

這對我的作品 - 我設置了CT作爲全局變量,只有存儲的結束時間,一旦

請更改setInterval("calculate_time()",100);setInterval(calculate_time,100);

,如果你沒有,你可以創建自己的命名空間要污染在全球範圍內

Live Demo

var ct, end_time = <?php echo $_SESSION['start_time']; ?>; // Get end time from session variable (total time in seconds). 

window.onload=function() { // make sure the output field exists 
    ct = setInterval(calculate_time,100); // Start clock. 
} 
function calculate_time() { 
    var dt = new Date(); // Create date object. 
    var time_stamp = dt.getTime()/1000; // Get current minutes (converted to seconds). 
    var total_time = end_time - Math.round(time_stamp); // Subtract current seconds from total seconds to get seconds remaining. 
    var mins = Math.floor(total_time/60); // Extract minutes from seconds remaining. 
    var secs = total_time - (mins * 60); // Extract remainder seconds if any. 
    if(secs < 10){secs = "0" + secs;} // Check if seconds are less than 10 and add a 0 in front. 
    document.getElementById("txt").value = mins + ":" + secs; // Display remaining minutes and seconds. 
// Check for end of time, stop clock and display message. 
    if(mins <= 0) { 
    if(secs <= 0 || mins < 0) { 
    clearInterval(ct); 
    document.getElementById("txt").value = "0:00"; 
    var form = document.createElement("form"); 
    form.action = "http://www.example.org/q/conflinux/expire_me.php"; 
    form.method = "post" 
    document.body.appendChild(form); 
    form.submit(); 
    } 
    } 
} 
+0

先生它不工作檢查它在這裏... [鏈接](http://2014.pragyaa.org/ q/conflinux /)使用ID:326599電子郵件:[email protected] –

+0

究竟哪些不起作用?時鐘或提交或什麼? – mplungjan

+0

計時器時鐘 –