export default function translatePublishTime(timestamp: number): string {
  let result: string
  // 获取当前时间
  const currentData = new Date()
  // 获取发布时间
  const date = new Date(timestamp)
  // 获取发布年份
  const year = date.getFullYear()
  // 获取发布月份
  const mouth = date.getMonth() + 1
  // 获取发布日期
  const day = date.getDate()
  // 获取发布小时
  const hours = date.getHours()
  // 获取发布分钟
  const minute = date.getMinutes()
  // 获取发布秒数
  const second = date.getSeconds()
  // 获取发布时间戳
  const timer = date.getTime()
  // 获取当前年份
  const currentYear = currentData.getFullYear()
  // 获取当前月份
  const currentMonth = currentData.getMonth() + 1
  // 获取当前日期
  const currentDay = currentData.getDate()
  // 获取当前小时
  const currentHours = currentData.getHours()
  // 获取当前分钟
  let currentMinute = currentData.getMinutes()
  // 获取当前秒数
  const currentSecond = currentData.getSeconds()
  // 获取当前时间戳
  const currentTimer = currentData.getTime()

  // 如果时间差小于10秒
  if ((currentTimer - timer) < 1000 * 10) {
    // 显示刚刚
    result = `刚刚`;
    // 如果时间差小于60秒
  } else if ((currentTimer - timer) < 1000 * 60) {
    // 如果当前分钟大于发布分钟
    if (currentMinute > minute) {
      // 显示秒数差
      result = `${(((currentMinute - minute) * 60) + currentSecond - second)}秒前`;
    } else {
      // 显示秒数差
      result = `${(currentSecond - second)}秒前`;
    }
    // 如果时间差小于1小时
  } else if ((currentTimer - timer) < 1000 * (60 * 60)) {
    // 如果当前小时大于发布小时
    if (currentHours > hours) {
      // 显示分钟差
      result = `${(((currentHours - hours) * 60) + currentMinute - minute)}分钟前`;
    } else {
      // 修改 昨天发布的文章时间会出现负数
      // 如果当前分钟小于发布分钟
      if (currentMinute < minute) {
        // 当前分钟加60
        currentMinute += 60
      }
      // 显示分钟差
      result = `${(currentMinute - minute)}分钟前`;
    }
    // 如果时间差小于1天
  } else if ((currentTimer - timer) < 1000 * (24 * 60 * 60)) {
    // 如果当前日期大于发布日期
    if (currentDay > day) {
      // 显示小时差
      result = `${((currentDay - day) * 24 + currentHours - hours)}小时前`;
    } else {
      // 修改 跨月-昨天发布的文章时间会出现负数
      // 如果当前月份不等于发布月份
      if (currentMonth !== mouth) {
        // 显示小时差
        result = `${(24 + currentHours - hours)}小时前`;
      } else {
        // 显示小时差
        result = `${(currentHours - hours)}小时前`;
      }
    }
    // 如果发布年份等于当前年份
  } else if (currentYear === year) {
    // 显示月份和日期
    result = `${mouth}月${day}日`;
  } else {
    // 显示年份、月份和日期
    result = `${year}年${mouth}月${day}日`;
  }
  return result // 返回结果
}

