import { DisplayTimeType, TimeConver, UnitType } from './interface' /** * * @param initTime 初始时间 默认是分钟 * @param unit 初始单位 * @param type 要转换的时间格式 "hh:mm:ss" | "hh:mm" | "mm:ss" | 'hh' | "mm" | "ss" * @returns */ export const getSeconds = (initTime: number, unit: string) => { let ss: number = 0; switch (unit) { case 'h': ss = initTime * 60 * 60; break; case 'min': ss = initTime * 60; break; case 's': ss = initTime break; default: break; } return ss } export const getDisplayTime = (timeConver: TimeConver, unit: UnitType) => { let type = ''; const { hoursFlag, minutesFlag, secondsFlag } = timeConver; if (hoursFlag) { type = 'h'; } if (minutesFlag) { type += 'min'; } if (secondsFlag) { type += 's'; } if (type === '') { type = unit } return type } export const formatTime = (initTime: number, unit: UnitType, timeConver: TimeConver) => { if (initTime === undefined) return ''; const initSecond = getSeconds(initTime, unit); const displayTimeType = getDisplayTime(timeConver, unit); let res = ''; let hour: number = 0; let mins: number = 0; let secs: number = 0; switch (displayTimeType) { case 'h': res = `${Math.round(initSecond / 3600 * 100) / 100}小时`; break; case 'min': res = `${Math.round(initSecond / 60 * 100) / 100}分钟`; break; case 's': res = `${initSecond}秒`; break; case 'mins': mins = Math.floor(initSecond / 60); secs = initSecond % 60; res = mins + '分' + secs + '秒'; break; case 'hmins': hour = Math.floor(initSecond / 3600); mins = Math.floor(initSecond % 3600 / 60); secs = initSecond % 3600 % 60; res = hour + "时" + mins + '分' + secs + '秒'; break; case 'hmin': hour = Math.floor(initSecond / 3600); mins = Math.round(initSecond % 3600 / 60 * 100) / 100; res = hour + "时" + mins + '分'; break; default: break; } return res; }