{"version":3,"file":"time.mjs","sources":["../../../../../src/components/ivue-relative-time/time.ts"],"sourcesContent":["/*  eslint-disable */\r\n\r\n// 语言\r\nexport type Locale = {\r\n  before?: string;\r\n  after?: string;\r\n  just?: string;\r\n  seconds?: string;\r\n  minutes?: string;\r\n  hours?: string;\r\n  days?: string;\r\n};\r\n\r\n// 判断传入时间戳是否早于当前时间戳\r\nconst isEarly = (timeStamp: number, currentTime: number) => {\r\n  return timeStamp <= currentTime;\r\n};\r\n\r\n// 果传入的数值小于10，即位数只有1位，则在前面补充0\r\nexport const getHandledValue = (num: number) => {\r\n  return num < 10 ? '0' + num : num;\r\n};\r\n\r\n// 时间字符串的格式类型\r\nexport const getDate = (timeStamp: number, startType?: string) => {\r\n  const d = new Date(timeStamp);\r\n\r\n  const year = d.getFullYear();\r\n  const month = getHandledValue(d.getMonth() + 1);\r\n  const day = getHandledValue(d.getDate());\r\n  const hours = getHandledValue(d.getHours());\r\n  const minutes = getHandledValue(d.getMinutes());\r\n  const second = getHandledValue(d.getSeconds());\r\n\r\n  // 结果字符串\r\n  let resultStr = '';\r\n\r\n  // 年\r\n  if (startType === 'year' || startType === 'datetime') {\r\n    // yyyy-mm-dd h:m:s\r\n    resultStr = `${year}-${month}-${day} ${hours}:${minutes}:${second}`;\r\n  }\r\n  // 日期\r\n  else if (startType === 'date') {\r\n    resultStr = `${year}-${month}-${day}`;\r\n  }\r\n  // 其他日期\r\n  else {\r\n    // mm-dd h:m:s\r\n    resultStr = `${month}-${day} ${hours}:${minutes}`;\r\n  }\r\n\r\n  return resultStr;\r\n};\r\n\r\n// 获取相对时间\r\nexport const getRelativeTime = (\r\n  timeStamp: number,\r\n  locale: Locale = {},\r\n  dateStartType?: string,\r\n  dateFunction?: Function\r\n) => {\r\n  // 当前时间\r\n  const currentTime = new Date().getTime();\r\n\r\n  // 判断传入时间戳是否早于当前时间戳\r\n  const _isEarly = isEarly(timeStamp, currentTime);\r\n\r\n  // 获取两个时间戳差值\r\n  let diff: number = currentTime - timeStamp;\r\n\r\n  // 结果字符串\r\n  let resultStr = '';\r\n\r\n  // 当前时间之后\r\n  if (!_isEarly) {\r\n    diff = -diff;\r\n  }\r\n\r\n  // 最后的字符串\r\n  const endStr = _isEarly ? locale.before || '前' : locale.after || '后';\r\n\r\n  // 刚刚\r\n  if (diff < 1000) {\r\n    resultStr = locale.just || '刚刚';\r\n  }\r\n  // 秒 -> 少于等于59秒\r\n  else if (diff < 60000) {\r\n    resultStr = `${parseInt(`${diff / 1000}`)}${\r\n      locale.seconds || '秒'\r\n    }${endStr}`;\r\n  }\r\n  // 分钟 -> 多于59秒，少于等于59分钟59秒\r\n  else if (diff >= 60000 && diff < 3600000) {\r\n    resultStr = `${Math.floor(diff / 60000)}${\r\n      locale.minutes || '分钟'\r\n    }${endStr}`;\r\n  }\r\n  // 小时 -> 多于59分钟59秒，少于等于23小时59分钟59秒\r\n  else if (diff >= 3600000 && diff < 86400000) {\r\n    resultStr = `${Math.floor(diff / 3600000)}${\r\n      locale.hours || '小时'\r\n    }${endStr}`;\r\n  }\r\n  // 天 -> 多于23小时59分钟59秒，少于等于29天59分钟59秒\r\n  else if (diff >= 86400000 && diff < 2623860000) {\r\n    resultStr = `${Math.floor(diff / 86400000)}${locale.days || '天'}`;\r\n  }\r\n  // 月 -> 多于29天59分钟59秒，少于364天23小时59分钟59秒，且传入的时间戳早于当前\r\n  else if (diff >= 2623860000 && diff <= 31567860000 && _isEarly) {\r\n    resultStr = getDate(timeStamp, dateStartType);\r\n  }\r\n  // 年 -> 多于29天59分钟59秒，少于364天23小时59分钟59秒，且传入的时间戳早于当前\r\n  else {\r\n    resultStr = getDate(timeStamp, 'year');\r\n  }\r\n\r\n  // 自定义日期方法\r\n  if (dateFunction) {\r\n    // 时间搓, 获取两个时间戳差值, 判断传入时间戳是否早于当前时间戳\r\n    resultStr = dateFunction(timeStamp, diff, _isEarly);\r\n  }\r\n\r\n  return resultStr;\r\n};\r\n"],"names":[],"mappings":"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"}