first commit
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
// 金额 / 时间格式化工具
|
||||
|
||||
function pad(n: number): string {
|
||||
return n < 10 ? `0${n}` : `${n}`
|
||||
}
|
||||
|
||||
// 金额(分)转「¥xx.xx」字符串
|
||||
export function fenToYuan(fen: number | null | undefined): string {
|
||||
if (fen === null || fen === undefined || isNaN(fen)) return '¥0.00'
|
||||
return `¥${(fen / 100).toFixed(2)}`
|
||||
}
|
||||
|
||||
// 秒级时间戳转 YYYY-MM-DD
|
||||
export function formatDate(seconds: number | null | undefined): string {
|
||||
if (!seconds) return ''
|
||||
const d = new Date(seconds * 1000)
|
||||
return `${d.getFullYear()}-${pad(d.getMonth() + 1)}-${pad(d.getDate())}`
|
||||
}
|
||||
|
||||
// 秒级时间戳转 YYYY-MM-DD HH:mm
|
||||
export function formatDateTime(seconds: number | null | undefined): string {
|
||||
if (!seconds) return ''
|
||||
const d = new Date(seconds * 1000)
|
||||
return `${formatDate(seconds)} ${pad(d.getHours())}:${pad(d.getMinutes())}`
|
||||
}
|
||||
|
||||
// 相对时间:刚刚 / x分钟前 / x小时前 / 今天 / YYYY-MM-DD
|
||||
export function formatRelativeTime(seconds: number | null | undefined): string {
|
||||
if (!seconds) return ''
|
||||
const now = Math.floor(Date.now() / 1000)
|
||||
const diff = now - seconds
|
||||
if (diff < 0) return formatDate(seconds)
|
||||
if (diff < 60) return '刚刚'
|
||||
if (diff < 3600) return `${Math.floor(diff / 60)} 分钟前`
|
||||
|
||||
const d = new Date(seconds * 1000)
|
||||
const today = new Date()
|
||||
const isToday =
|
||||
d.getFullYear() === today.getFullYear() &&
|
||||
d.getMonth() === today.getMonth() &&
|
||||
d.getDate() === today.getDate()
|
||||
|
||||
if (diff < 86400) {
|
||||
return isToday ? '今天' : `${Math.floor(diff / 3600)} 小时前`
|
||||
}
|
||||
return formatDate(seconds)
|
||||
}
|
||||
|
||||
// 支付倒计时(秒)转 mm:ss
|
||||
export function formatCountdown(totalSeconds: number): string {
|
||||
if (totalSeconds <= 0) return '00:00'
|
||||
const m = Math.floor(totalSeconds / 60)
|
||||
const s = Math.floor(totalSeconds % 60)
|
||||
return `${pad(m)}:${pad(s)}`
|
||||
}
|
||||
Reference in New Issue
Block a user