2011-04-09 2 views
2

YouTube에서와 같이 얼마나 많은 영화가 재생되었는지 보여주는 작은 카운터를 만들려고합니다.자바 스크립트 디스플레이 길이

<div id="timeInfo">00:23</div> 

가 어떻게이를 않습니다

은이 같은 출력 A와 시간을 원하는?

function infTime(){ 
    timeInfo.innerHTML = formatTime(video.currentTime); 

    if (video.duration) { 
     timeInfo.innerHTML = formatTime(video.duration); 
    } 
} 

function formatTime (seconds) { 
    seconds = Math.round(seconds); 

    minutes = Math.floor(seconds/60); 
    minutes = (minutes >= 10) ? minutes : "0" + minutes; 

    seconds = Math.floor(seconds % 60); 
    seconds = (seconds >= 10) ? seconds : "0" + seconds; 

    return minutes + ":" + seconds; 
} 
+0

기타. 성공하지 못했습니다. 오, 알았어. – Pointy

답변

1

이 줄은 problematical입니다 :

seconds = Math.round(seconds); 

당신은 정확한 결과를 얻기 위해 여기 Math.floor를 사용하고 싶습니다.

라이브 데모 : "분"나에게 확인을 보이는`var` 키워드로 선언해야한다는 사실보다 더 http://jsfiddle.net/simevidas/h6yst/

+0

최악의 경우 잠시 멈추게 할 수 있습니까? – Pointy

+0

@Pointy 'Math.round'를 사용하면 0.5 [1, 1] 값이 '00 : 00'대신 '00 : 01 '이되고, [1.5, 2 > 결과는 '00 : 01 '대신 '00 : 02'가됩니다.). 당신이 내 데모를 의미한다면, 그것은 최악의 상황에서 100ms 떨어져 있습니다. –

0

당신은 두 번에 "innerHTML을"을 지정하여 내용을 덮어있어 : 나는 성공없이 다음 시도했다. 두 번째 표현식은 "+ ="으로 기록 될 수도 있고, 다른 (더 나은) 별도로 문자열을 만들 수 :

infTime: function() { 
    var info = formatTime(video.currentTime) + (video.duration ? ' ' + formatTime(video.duration) : ''); 
    timeInfo.innerHTML = info; 
} 

을 이제 "timeInfo는"해당 DOM 요소에 대한 참조 정말 것으로 추정 물론 이 같은 아마 얻을 :

var timeInfo = document.getElementById('timeInfo'); 

을 또한, var 키워드로 "formatTime"기능에 최초로 사용 이전으로 "분"로컬 변수가 될 수 있도록하는 것을 잊지 마십시오

var minutes = Math.floor(seconds/60); 
+0

그게 작동하지 않습니다 :/ –

+0

글쎄, 제레미. 문제가 무엇인지 정확하게 설명하면 도움을 줄 수 있다고 생각하지 않니? – Pointy

+1

문제를 설명하는 방법을 알지 못하거나 더 자세한 설명이 필요하다는 것을 모르는 것과 혼동하지 마십시오. ':)' –