partner-admin/src/utils/format.js
2025-03-12 00:54:41 +08:00

71 lines
2.1 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 格式化日期时间
* @param {string|Date} date - 日期对象或日期字符串
* @param {string} format - 格式化模式,默认为 'YYYY-MM-DD HH:mm:ss'
* @returns {string} - 格式化后的日期字符串
*/
export function formatDate(date, format = 'YYYY-MM-DD HH:mm:ss') {
if (!date) return '-';
const d = typeof date === 'string' ? new Date(date) : date;
// 检查日期是否有效
if (isNaN(d.getTime())) {
return '-';
}
const year = d.getFullYear();
const month = String(d.getMonth() + 1).padStart(2, '0');
const day = String(d.getDate()).padStart(2, '0');
const hours = String(d.getHours()).padStart(2, '0');
const minutes = String(d.getMinutes()).padStart(2, '0');
const seconds = String(d.getSeconds()).padStart(2, '0');
return format
.replace('YYYY', year)
.replace('MM', month)
.replace('DD', day)
.replace('HH', hours)
.replace('mm', minutes)
.replace('ss', seconds);
}
/**
* 格式化金额,保留两位小数
* @param {number|string} amount - 金额
* @param {number} decimals - 小数位数默认为2
* @param {string} prefix - 前缀,默认为空
* @returns {string} - 格式化后的金额字符串
*/
export function formatAmount(amount, decimals = 2, prefix = '') {
if (amount === undefined || amount === null) return `${prefix}0.00`;
const num = parseFloat(amount);
if (isNaN(num)) return `${prefix}0.00`;
return `${prefix}${num.toFixed(decimals)}`;
}
/**
* 格式化手机号码,中间四位显示为星号
* @param {string} phone - 手机号码
* @returns {string} - 格式化后的手机号码
*/
export function formatPhone(phone) {
if (!phone || phone.length < 11) return phone;
return `${phone.substring(0, 3)}****${phone.substring(7)}`;
}
/**
* 格式化银行卡号,仅显示后四位
* @param {string} cardNumber - 银行卡号
* @returns {string} - 格式化后的银行卡号
*/
export function formatBankCard(cardNumber) {
if (!cardNumber) return '';
if (cardNumber.length <= 4) return cardNumber;
return `**** **** **** ${cardNumber.slice(-4)}`;
}