可以隐藏数值为0的时间单位
可以转换为中文单位显示
/**将毫秒数量转换为时分秒字符串*/ toHourMinuteSecondByMillisecond(millisecond, cfg = {}) { let t = "", ms = Math.round(millisecond), s = Math.floor(ms / 1000), zh = cfg.zh,//显示中文“00天0时0分0秒0000毫秒”,为false的时候不会有天的概念,最多就是小时数量 d = cfg.isDoubleDigits,//显示双位数 f = cfg.isFourDigits,//显示4位数 hz = cfg.hideZero,//隐藏为0的时间单位 hd = cfg.hideDay,//隐藏天 hh = cfg.hideHour,//隐藏小时 hm = cfg.hideMinute,//隐藏分钟 hs = cfg.hideSecond,//隐藏秒钟 hms = cfg.hideMilliSecond;//隐藏毫秒钟 let day = Math.floor(s / 3600 / 24), hour = Math.floor(s / 3600), min = Math.floor(s / 60) % 60, sec = s % 60, msec = ms % 1000; zh && (hour = hour % 24);//如果是显示中文单位,重新计算小时数量(要扣除天数*24) (hd || !zh) || (hz && !day) || (d && day < 10 && (t += "0"), t += day + (zh ? "天" : ":")); hh || (hz && !hour) || (d && hour < 10 && (t += "0"), t += hour + (zh ? "时" : ":")); hm || (hz && !min) || (d && min < 10 && (t += "0"), t += min + (zh ? "分" : ":")); hs || (hz && !sec) || (d && sec < 10 && (t += "0"), t += sec + (zh ? "秒" : "")); hms || (hz && !msec) || (f && msec < 1000 && (msec = msec.toString().padStart(3, "0")), t += (zh ? "" : ".") + msec + (zh ? "毫秒" : "")); return t; },
延伸阅读