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分钟前,这个显示希望显示为“小时”为单位,修改待更。