2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 11:27:17 +08:00
Files
panel/web/src/utils/common/common.ts
2024-10-16 17:04:34 +08:00

37 lines
1.2 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { DateTime, Duration } from 'luxon'
type Time = undefined | string | Date
/** 格式化时间默认格式yyyy-MM-dd HH:mm:ss */
export function formatDateTime(time: Time, format = 'yyyy-MM-dd HH:mm:ss'): string {
const dateTime = time ? DateTime.fromJSDate(new Date(time)) : DateTime.now()
return dateTime.toFormat(format)
}
/** 格式化日期默认格式yyyy-MM-dd */
export function formatDate(date: Time = undefined, format = 'yyyy-MM-dd') {
return formatDateTime(date, format)
}
/** 格式化持续时间,转为 x天x小时x分钟x秒 */
export function formatDuration(seconds: number) {
const duration = Duration.fromObject({ seconds })
const days = Math.floor(duration.as('days'))
const hours = duration.hours
const minutes = duration.minutes
const secs = duration.seconds
return `${days}天${hours}时${minutes}分${secs}秒`
}
/** 生成随机字符串 */
export function generateRandomString(length: number) {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
let result = ''
for (let i = 0; i < length; i++) {
const randomIndex = Math.floor(Math.random() * characters.length)
result += characters[randomIndex]
}
return result
}