123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- // 补0,如1 -> 01
- function padZero(num, targetLength = 2) {
- let str = `${num}`
- while (str.length < targetLength) {
- str = `0${str}`
- }
- return str
- }
- const SECOND = 1000
- const MINUTE = 60 * SECOND
- const HOUR = 60 * MINUTE
- const DAY = 24 * HOUR
- export function parseTimeData(time) {
- const days = Math.floor(time / DAY)
- const hours = Math.floor((time % DAY) / HOUR)
- const minutes = Math.floor((time % HOUR) / MINUTE)
- const seconds = Math.floor((time % MINUTE) / SECOND)
- const milliseconds = Math.floor(time % SECOND)
- return {
- days,
- hours,
- minutes,
- seconds,
- milliseconds
- }
- }
- export function parseFormat(format, timeData) {
- let {
- days,
- hours,
- minutes,
- seconds,
- milliseconds
- } = timeData
- // 如果格式化字符串中不存在DD(天),则将天的时间转为小时中去
- if (format.indexOf('DD') === -1) {
- hours += days * 24
- } else {
- // 对天补0
- format = format.replace('DD', padZero(days))
- }
- // 其他同理于DD的格式化处理方式
- if (format.indexOf('HH') === -1) {
- minutes += hours * 60
- } else {
- format = format.replace('HH', padZero(hours))
- }
- if (format.indexOf('mm') === -1) {
- seconds += minutes * 60
- } else {
- format = format.replace('mm', padZero(minutes))
- }
- if (format.indexOf('ss') === -1) {
- milliseconds += seconds * 1000
- } else {
- format = format.replace('ss', padZero(seconds))
- }
- return format.replace('SSS', padZero(milliseconds, 3))
- }
- export function isSameSecond(time1, time2) {
- return Math.floor(time1 / 1000) === Math.floor(time2 / 1000)
- }
|