// 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<string, string> = {
    '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;
  });
}
