常见工具类函数
时间格式类
- dayFormatUTC
- timeAgoFormat
- customFormatUTC
- package
export const c = (time) => {
return dayjs.utc(time).format('MMM-DD-YYYY h:mm:ss A +[UTC]')
}
export function timeAgoFormat(cellValue) {
const timeNow = new Date().getTime()
const compare = timeNow - cellValue
if (!cellValue) {
return '--'
}
if (compare < 0) {
return '0 secs ago'
}
if (compare < 1000 * 60) {
const secs = Math.floor(compare / 1000)
return `${secs} ${secs <= 1 ? 'sec' : 'secs'} ago`
}
if (compare < 1000 * 60 * 60) {
const minutes = Math.floor(compare / (1000 * 60))
return `${minutes} ${minutes <= 1 ? 'min' : 'mins'} ago`
}
if (compare < 1000 * 60 * 60 * 24) {
const hours = Math.floor(compare / (1000 * 60 * 60))
const minutes = Math.floor((compare % (1000 * 60 * 60)) / (1000 * 60))
return minutes === 0 ? `${hours} ${hours <= 1 ? 'hr' : 'hrs'} ago` : `${hours} ${hours <= 1 ? 'hr' : 'hrs'} ${minutes} ${minutes <= 1 ? 'min' : 'mins'} ago`
}
return dayjs.utc(cellValue).format('YYYY-MM-DD HH:mm:ss')
}
export const customFormatUTC = (time) => {
const now = Date.now()
const diffMilliseconds = now - time
const seconds = Math.floor(diffMilliseconds / 1000)
const minutes = Math.floor(seconds / 60)
const hours = Math.floor(minutes / 60)
const days = Math.floor(hours / 24)
if (days > 0) {
return `${days} ${days <= 1 ? 'day' : 'days'} ${hours % 24} ${hours % 24 <= 1 ? 'hr' : 'hrs'} ago`
} else if (hours > 0) {
const remainingMinutes = minutes % 60
return remainingMinutes === 0 ? `${hours} ${hours <= 1 ? 'hr' : 'hrs'} ago` : `${hours} ${hours <= 1 ? 'hr' : 'hrs'} ${remainingMinutes} ${remainingMinutes <= 1 ? 'min' : 'mins'} ago`
} else if (minutes > 0) {
return `${minutes} ${minutes <= 1 ? 'min' : 'mins'} ago`
} else {
return `${seconds} ${seconds <= 1 ? 'sec' : 'secs'} ago`
}
}
import dayjs from 'dayjs'
import utc from 'dayjs/plugin/utc'
dayjs.extend(utc)
Live Editor
Result
Loading...
Live Editor
Result
Loading...
/**
* 等待指定的毫秒数后 resolve 的函数
* @param ms 要等待的毫秒数
* @returns 返回一个 Promise,在指定的毫秒数后 resolve
*/
export function sleep(ms: number): Promise<void> {
return new Promise((resolve) => setTimeout(resolve, ms));
}
Live Editor
Result
Loading...