초를 시:분:초
변환하기
function humanReadable(seconds) {
if (seconds < 61) {
return '00:' + addZero(seconds)
}
// sec
var hours = Math.floor(seconds/3600)
var mins = Math.floor((seconds - hours*3600)/60)
var secs = seconds - hours*3600 - mins*60
return addZero(hours) + ':' + addZero(mins) + ':' + addZero(secs)
function addZero(num) {
return ((num < 10) ? '0' : '') + num
}
}
- seconds가 60 미만이면 연산할 필요가 없으니 그대로 '00:00:'을 앞에 붙여서 리턴한다.
- seconds가 3600 미만이면 분, 초만 계산하고 앞에는 '00:'을 붙여서 리턴한다.
- seconds를 60으로 나누면 45.8889..와 같이 실수로 출력되는데 이 값에서 Math.floor()로 소수점 이하를 버리면 그 값이 분이 된다.
- 그리고 seconds에서 (위에서 구한 분*60)을 빼준 값이 초가 된다.
- seconds가 3600 이상이면 시, 분, 초로 이루어져 있다는 뜻이니 위와 같은 방법으로 계산해서 리턴한다.
- hours는 seconds를 3600(60*60)으로 나눈 값에서 소수점 이하를 버린 값이다.
- min은 seconds에서 (위에서 구한 hours*3600)을 뺀 값에서 60을 나눈 값이다.
- sec은 seconds에서 (hours*3600)과 (min*60)을 뺀 값이다.
참고 : https://im-developer.tistory.com/55