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