/** * 格式化日期时间 * @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)}`; }