71 lines
1.8 KiB
TypeScript
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;
|
|
}
|