javascript类似朋友圈发布时间格式化

177 阅读1分钟
/**
 * 类似朋友圈发布时间格式化
 * @param {Date} time 需要格式化的时间
 * @return {String} 格式化后的字符串
 */
function formatTime(time) {
  let nowDate = new Date() //当前时间
  let postDate = new Date(time) //发布时间
  let diffTime = nowDate.getTime() - postDate.getTime() //时间差的毫秒数
  //计算出相差天数
  let days = Math.floor(diffTime / (24 * 3600 * 1000))
  //计算出小时数
  let leave1 = diffTime % (24 * 3600 * 1000)
  // 计算天数后剩余的毫秒数
  let hours = Math.floor(leave1 / (3600 * 1000))
  // 计算相差分钟数
  let leave2 = leave1 % (3600 * 1000)
  //计算小时数后剩余的毫秒数
  let minutes = Math.floor(leave2 / (60 * 1000))
  //计算相差秒数
  let leave3 = leave2 % (60 * 1000)
  //计算分钟数后剩余的毫秒数
  let seconds = Math.round(leave3 / 1000)
  let result = ''
  if (days > 0) {
    result = days + '天前'
  } else if (hours > 0) {
    result = hours + '小时前'
  } else if (minutes > 0) {
    result = minutes + '分钟前'
  } else if (seconds > 0) {
    result = seconds + '秒前'
  } else {
    result = '刚刚'
  }
  return result
}