yangfeng
2023-09-22 dd845fb8c3972ba17b070e486ebf36f87378a587
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
export function dateFormat(fmt, date) {
  let ret = ""
  date = new Date(date)
  const opt = {
    "Y+": date.getFullYear().toString(), // 年
    "m+": (date.getMonth() + 1).toString(), // 月
    "d+": date.getDate().toString(), // 日
    "H+": date.getHours().toString(), // 时
    "M+": date.getMinutes().toString(), // 分
    "S+": date.getSeconds().toString() // 秒
    // 有其他格式化字符需求可以继续添加,必须转化成字符串
  }
  for (let k in opt) {
    ret = new RegExp("(" + k + ")").exec(fmt)
    if (ret) {
      fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, "0"))
    }
  }
  return fmt
}
 
// 判断时间是几分前 几小时前 几天前
export function timeago(time) {
  var data = new Date(time)
  var dateTimeStamp = data.getTime()
  var minute = 1000 * 60 //把分,时,天,周,半个月,一个月用毫秒表示
  var hour = minute * 60
  var day = hour * 24
  var month = day * 30
  var year = month * 12
  var now = new Date().getTime() //获取当前时间毫秒
  var diffValue = now - dateTimeStamp //时间差
 
  var result = ""
  if (diffValue < 0) {
    result = time
  } else {
    var minC = diffValue / minute //计算时间差的分,时,天,周,月
    var hourC = diffValue / hour
    var dayC = diffValue / day
    // var weekC = diffValue / (7*day)
    var monthC = diffValue / month
    var yearC = diffValue / year
    if (parseInt(yearC) >= 1) {
      result = parseInt(yearC) + "年前"
    } else if (parseInt(monthC) >= 1) {
      result = parseInt(monthC) + "个月前"
    } else if (parseInt(dayC) > 1) {
      result = parseInt(dayC) + "天前"
    } else if (parseInt(dayC) === 1) {
      result = "1天前"
    } else if (parseInt(hourC) >= 1) {
      result = parseInt(hourC) + "小时前"
    } else if (parseInt(minC) >= 1) {
      result = parseInt(minC) + "分钟前"
    } else {
      result = "刚刚"
    }
  }
  return result
}