/**
* @파일 형식-time.js
* @module 형식-시간
*/
/**
* 초 형식을 시간 문자열(H:MM:SS 또는 M:SS)로 지정합니다. 가이드 제공(in
* 초)는 앞에 오는 0을 강제로 표시하여 길이를 덮습니다.
* 가이드.
*
* @사적인
* @param {숫자}초
* 문자열로 변환할 시간(초)
*
* @param {숫자} 가이드
* 뒤에 문자열을 모델링할 숫자(초)
*
* @return {문자열}
* H:MM:SS 또는 M:SS 형식의 시간
*/
const defaultImplementation = function(seconds, guide) {
초 = 초 < 0 ? 0 : 초;
let s = Math.floor(초 % 60);
let m = Math.floor(초 / 60 % 60);
let h = Math.floor(초 / 3600);
const gm = Math.floor(가이드 / 60 % 60);
const gh = Math.floor(가이드 / 3600);
// 유효하지 않은 시간 처리
if (isNaN(초) || 초 === 무한대) {
// '-'는 모든 관계 연산자에 대해 거짓입니다(예: < , > =) 그래서 이 설정
// 가이드에서 지정한 최소 필드 수를 추가합니다.
h = m = s = '-';
}
// 시간을 표시해야 하는지 확인
시간 = (시간 > 0 || ㅎ > 0) ? h + ':' : '';
// 시간이 표시되면 앞에 0을 추가해야 할 수 있습니다.
// 항상 최소 한 자리의 분을 표시합니다.
m = (((h || gm > = 10) && 중 < 10) ? '0' + m : m) + ':';
// 선행 0이 몇 초 동안 필요한지 확인
에스 = (들 < 10) ? '0' + s : s;
h + m + s를 반환합니다.
};
// 현재 구현에 대한 내부 포인터.
let 구현 = defaultImplementation;
/**
* 기본 formatTime 구현을 사용자 정의 구현으로 바꿉니다.
*
* @param {함수} customImplementation
* 기본 formatTime 대신 사용할 함수
* 구현. 현재 시간을 초 단위로 수신하고
* 가이드(초 단위)를 인수로 사용합니다.
*/
내보내기 기능 setFormatTime(customImplementation) {
구현 = customImplementation;
}
/**
* formatTime을 기본 구현으로 재설정합니다.
*/
내보내기 기능 resetFormatTime() {
구현 = defaultImplementation;
}
/**
* 기본 시간 형식화 기능 또는 사용자 지정
* `setFormatTime`을 통해 제공되는 함수.
*
* 초를 시간 문자열로 포맷합니다(H:MM:SS 또는 M:SS). 공급
* 가이드(초 단위)는 여러 개의 선행 0을 적용하여
* 가이드의 길이.
*
* @정적
* @example formatTime(125, 600) === "02:05"
* @param {숫자}초
* 문자열로 변환할 시간(초)
*
* @param {숫자} 가이드
* 뒤에 문자열을 모델링할 숫자(초)
*
* @return {문자열}
* H:MM:SS 또는 M:SS 형식의 시간
*/
함수 formatTime(초, 가이드 = 초) {
반환 구현(초, 가이드);
}
내보내기 기본 형식시간;