Files
pj_h5_cloud/src/sheep/hooks/use-unit.ts
T
2024-11-12 09:43:02 +08:00

71 lines
1.8 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(1);
};
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;
}