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

时间:2020-09-16 12:43:13   收藏:0   阅读:58

需求

给定发布评论的时间戳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分钟前,这个显示希望显示为“小时”为单位,修改待更。

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!