js发布时间按指定规则显示

需求

给定发布评论的时间戳timestamp,
要求根据时间戳如下显示:
不足一分钟:刚刚,
满一分钟不足24小时:xx分钟前
过了0点:昨天,2天前,3天前……
超过三天:08-01(月-日)

代码

function getDateDiff(timestamp) {
  var prev = new Date(timestamp)
  var now = new Date;
  var dvalue = (now-timestamp)/1000|0;
  var minute = 60
  var day = 60*60*24
  // 不足24小时
  if(dvalue<day) {
    // 不在同一天显示昨天
    if(now.getDate() == prev.getDate()) {
      return dvalue < minute ? '刚刚' : ((dvalue/minute|0)+'分钟前')
    }
    return '昨天';
  }
  if(dvalue <= 3*day) return dvalue > day ? (dvalue/day|0) + '天前' : '昨天';
  return prev.toISOString().slice(5,10)
}

问题
暂时感觉不太完美,当几小时前发布评论,则显示为了 例如:210分钟前,这个显示希望显示为“小时”为单位,修改待更。

posted @ 2020-09-03 09:03  ZerlinM  阅读(324)  评论(0编辑  收藏  举报