Files
pj_mini_app_cloud/src/sheep/hooks/use-unit.ts
T

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
}