const formatDateString = (input) => {
  // 基础校验：必须是8位数字
  if (!/^\d{8}$/.test(input)) {
    throw new Error('无效的日期格式：必须为8位纯数字');
  }

  // 拆分年月日
  const year = parseFloat(input.toString().substring(0, 4));
  const month = parseFloat(input.toString().substring(4, 6));
  const day = parseFloat(input.toString().substring(6, 8));

  // 有效性验证
  const date = new Date(`${year}-${month}-${day}`);
  if (
    isNaN(date.getTime()) ||
      date.getFullYear() !== year ||
      date.getMonth() + 1 !== month ||
      date.getDate() !== day
  ) {
    throw new Error('无效的日期值');
  }

  // 返回ISO格式 (YYYY-MM-DD)
  return date.toISOString().split('T');
};

export { formatDateString };

// 使用示例
//   try {
//     console.log(formatDateString('20250129')); // 输出 "2025-01-29"
//     console.log(formatDateString('20250230')); // 抛出错误
//   } catch (error) {
//     console.error(error.message);
//   }
