var startTime;
var timer;
function displayTime() {
var now = new Date();
var timeDiff = new Date(now - startTime); // constructor uses UTC, so use UTC date functions from here on
var hours = timeDiff.getUTCHours();
var mins = (timeDiff.getUTCMinutes() < 10) ? '0' + timeDiff.getUTCMinutes() : timeDiff.getUTCMinutes();
var secs = (timeDiff.getUTCSeconds() < 10) ? '0' + timeDiff.getUTCSeconds() : timeDiff.getUTCSeconds();
document.getElementById('time').innerHTML = hours + ':' + mins + ':' + secs;
if (hours >= 2) clearInterval(timer);
}
window.onload = function() {
startTime = new Date();
timer = setInterval(displayTime, 1000);
}
는 startTime
여전히 원래의 시간이 될 것이다. 잠 들어있는 동안 디스플레이를 업데이트 할 필요가 없습니다. 원래 시작 시간 이후로 시간을 알아야합니다.
그래서, 내가 전에이 배열을 가지고 있지만 방법을 사용하여에 논리를 전달하는 방법을 볼 수 실패하고있다 : 기능 타이머() { \t var에 digiformat = ""; \t if (i> 3599) \t {\t var H = Math.floor (i/3600); \t \t var H = Math.floor (i/3600); 다른 \t} \t \t \t \t {var에 H = 0; \t} \t \t var에 M = 1 - (H의 * 3600) \t \t (M> 59) \t { \t \t M = Math.floor (M/60) 다른 \t} \t 경우 { \t \t \t M = 0} \t \t \t var에 S = 1 - (60 * M의) \t,174,\t if (H <10) \t { \t \t H = "0"+ H; \t} \t 경우 (M <10) { \t \t \t M = "0"+ M; \t} \t (S <10) { \t \t \t S = "0"+ S 경우; \t} \t document.getElementById ('time'). innerHTML = H + ":"+ M + ":"+ S; exe = setTimeout ('timer()', 1000); i ++; \t if (H> = 2) { \t \t clearTimeout (exe); \t} \t –
SO SORRY! 나는 당신이 읽을 수 있도록 내 대답을 멋지게 형식화하는 법을 모른다. –
@ 벤 - 아무런 문제가 없다. 예제를 업데이트하여 'timeDiff'를 구문 분석하여 표시합니다. – nekno