2010-09-13 35 views
8

thể trùng lặp:
Javascript: find the time left in a setTimeout()?Làm thế nào để tìm ra thời gian còn lại của một setTimeout()

Tôi đang cố gắng sử dụng setTimeout() như một cách để tạm dừng một loạt các sự kiện trong JS .
Dưới đây là một ví dụ về những gì tôi đang làm và những gì tôi muốn làm trong ý kiến ​​- http://jsfiddle.net/8m5Ww/2/

Bất kỳ lời đề nghị làm thế nào tôi có thể cư var timeRemaining với tổng mili giây còn lại trong var a?

Trả lời

20

Bạn không thể trực tiếp tính giờ còn lại. Bạn có thể lưu trong một biến dấu thời gian khi bộ đếm thời gian được tạo và sử dụng nó để tính toán thời gian thực hiện tiếp theo.

mẫu:

var startTimeMS = 0; // EPOCH Time of event count started 
var timerId;   // Current timer handler 
var timerStep=5000; // Time beetwen calls 

// This function starts the timer 
function startTimer(){ 
    startTimeMS = (new Date()).getTime(); 
    timerId = setTimeout("eventRaised",timerStep); 
} 


// This function raises the event when the time has reached and 
// Starts a new timer to execute the opeartio again in the defined time 
function eventRaised(){ 

    alert('WOP EVENT RAISED!'); 

    clearTimer(timerId); // clear timer 
    startTimer(); // do again 
} 

// Gets the number of ms remaining to execute the eventRaised Function 
function getRemainingTime(){ 
    return timerStep - ((new Date()).getTime() - startTimeMS); 
} 
  • Đây là tùy chỉnh mẫu mã tạo ra "on the fly".
4

Không thể, nhưng nếu bạn đặt nội dung của một var riêng biệt cho thời gian bạn đặt nó, bạn có thể dễ dàng tìm ra nó theo cách thủ công.

Các vấn đề liên quan