规则:
如果是今天,则展示今天 + 时间;
如果是昨天,则展示昨天 + 时间;
如果更早且今年,则展示具体的日期(月日)+ 时间;
如果是更早且非今年,则展示具体的年月日 + 时间
方法
// 获取不同的时间表示
getTimeView = (num) => {
let timeTemp = moment.unix(num);
let yestTime = moment.unix(moment().valueOf() / 1000 - 24 * 60 * 60);
let nowTime = moment();
let yestTimeStart = yestTime.format('YYYY/MM/DD') + ' 00:00';
let yestTimeValueStart = moment(yestTimeStart).valueOf() / 1000; // 昨天0点时间戳
let yestTimeValueEnd = moment(yestTimeStart).valueOf() / 1000 + 24 * 60 * 60; //今天0点时间戳
// 昨天
if (num >= yestTimeValueStart && num < yestTimeValueEnd) {
return (
<div className="sentiment-time">{`昨天 ${timeTemp.format('HH:mm')}`}</div>
)
}
//非当年
if (timeTemp.format('YYYY') !== nowTime.format('YYYY')) {
return (
<div className="sentiment-time">{`${timeTemp.format('YYYY/MM/DD HH:mm')}`}</div>
)
} else if (timeTemp.format('MM') !== nowTime.format('MM')) {
//非当月
return (
<div className="sentiment-time">{`${timeTemp.format('MM/DD HH:mm')}`}</div>
)
} else if (timeTemp.format('DD') !== nowTime.format('DD')) {
if (timeTemp.format('DD') === yestTime.format('DD')) {
//昨天
return (
<div className="sentiment-time">{`昨天 ${timeTemp.format('HH:mm')}`}</div>
)
} else {
//当月
return (
<div className="sentiment-time">{`${timeTemp.format('MM/DD HH:mm')}`}</div>
)
}
} else if (timeTemp.format('YYYY/MM/DD') === nowTime.format('YYYY/MM/DD')) {
//今天
return (
<div className="sentiment-time">{`今天 ${timeTemp.format('HH:mm')}`}</div>
)
}
};
PS:
moment.js 中文文档