67 lines
1.7 KiB
TypeScript
67 lines
1.7 KiB
TypeScript
export const useMoney = (num) => {
|
|
if (typeof num === "undefined") return "0.00"
|
|
const parsedNumber = typeof num === "string" ? parseFloat(num) : num
|
|
return (parsedNumber / 100.0).toFixed(2)
|
|
}
|
|
|
|
export function useFormatNum(prefix: string, type: "exact" | string, num: number) {
|
|
num = num || 0
|
|
if (type === "exact") {
|
|
return prefix + num
|
|
}
|
|
if (num < 10) {
|
|
return `${prefix}≤10`
|
|
}
|
|
// 情况三:大于 10,除第一位外,其它位都显示为0
|
|
// 例如:100 - 199 显示为 100+
|
|
// 9000 - 9999 显示为 9000+
|
|
const numStr = num.toString()
|
|
const first = numStr[0]
|
|
const other = "0".repeat(numStr.length - 1)
|
|
return `${prefix}${first}${other}+`
|
|
}
|
|
|
|
export function useTime(time, pattern) {
|
|
if (arguments.length === 0 || !time) {
|
|
return null
|
|
}
|
|
const format = pattern || "{y}-{m}-{d} {h}:{i}:{s}"
|
|
let date
|
|
if (typeof time === "object") {
|
|
date = time
|
|
} else {
|
|
if (typeof time === "string" && /^[0-9]+$/.test(time)) {
|
|
time = parseInt(time)
|
|
} else if (typeof time === "string") {
|
|
time = time
|
|
.replace(new RegExp(/-/gm), "/")
|
|
.replace("T", " ")
|
|
.replace(new RegExp(/\.[\d]{3}/gm), "")
|
|
}
|
|
if (typeof time === "number" && time.toString().length === 10) {
|
|
time = time * 1000
|
|
}
|
|
date = new Date(time)
|
|
}
|
|
const formatObj = {
|
|
y: date.getFullYear(),
|
|
m: date.getMonth() + 1,
|
|
d: date.getDate(),
|
|
h: date.getHours(),
|
|
i: date.getMinutes(),
|
|
s: date.getSeconds(),
|
|
a: date.getDay(),
|
|
}
|
|
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
|
|
let value = formatObj[key]
|
|
if (key === "a") {
|
|
return ["日", "一", "二", "三", "四", "五", "六"][value]
|
|
}
|
|
if (result.length > 0 && value < 10) {
|
|
value = "0" + value
|
|
}
|
|
return value || 0
|
|
})
|
|
return time_str
|
|
}
|