// src/utils/dateUtils.ts export function parseTime(time: string | number | Date, cFormat?: string): string { if (arguments.length === 0) { return ''; } const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'; let date: Date; // 如果是字符串,尝试解析为 Date if (typeof time === 'string') { date = new Date(time); } else if (time instanceof Date) { date = time; } else { date = new Date(time * 1000); // 时间戳(毫秒) } // 确保日期有效 if (isNaN(date.getTime())) { return ''; } // 定义映射表 const map: Record = { 'y': date.getFullYear().toString(), 'm': (date.getMonth() + 1).toString().padStart(2, '0'), 'd': date.getDate().toString().padStart(2, '0'), 'h': date.getHours().toString().padStart(2, '0'), 'i': date.getMinutes().toString().padStart(2, '0'), 's': date.getSeconds().toString().padStart(2, '0'), 'w': date.getDay().toString() }; // 替换格式字符串中的占位符 return format.replace(/{([ymdhisw])}/g, (match, key) => { return map[key] || match; }); }