/**
 * 时间戳转换工具
 */

/**
 * 格式化时间戳
 * @param {Number|String} timestamp 时间戳（秒或毫秒）
 * @param {String} format 格式化模板，默认 'YYYY.MM.DD HH:mm'
 * @returns {String} 格式化后的时间字符串
 */
export function formatTime(timestamp, format = 'YYYY.MM.DD HH:mm') {
  if (!timestamp) {
    return '';
  }

  // 将时间戳转换为数字
  let ts = Number(timestamp);

  // 判断是秒级还是毫秒级时间戳（大于10位数是毫秒级）
  if (ts.toString().length === 10) {
    ts = ts * 1000;
  }

  const date = new Date(ts);

  // 检查日期是否有效
  if (isNaN(date.getTime())) {
    return '';
  }

  const year = date.getFullYear();
  const month = String(date.getMonth() + 1).padStart(2, '0');
  const day = String(date.getDate()).padStart(2, '0');
  const hours = String(date.getHours()).padStart(2, '0');
  const minutes = String(date.getMinutes()).padStart(2, '0');
  const seconds = String(date.getSeconds()).padStart(2, '0');

  return format
    .replace('YYYY', year)
    .replace('MM', month)
    .replace('DD', day)
    .replace('HH', hours)
    .replace('mm', minutes)
    .replace('ss', seconds);
}

/**
 * 格式化时间戳为默认格式 YYYY.MM.DD HH:mm
 * @param {Number|String} timestamp 时间戳
 * @returns {String} 格式化后的时间字符串
 */
export function formatDateTime(timestamp) {
  return formatTime(timestamp, 'YYYY.MM.DD HH:mm');
}

