按日期归并

This commit is contained in:
2023-10-24 06:46:40 +08:00
parent c9477581c8
commit 938739e8c2
1 changed files with 35 additions and 0 deletions

View File

@ -197,6 +197,41 @@ export default class Chat {
}
}
添加元素(data) {
// 人类可读的时间: 今天,昨天, 空字符串
function convertTimestampToReadableTime(timestamp) {
const date = new Date(timestamp);
const today = new Date();
const yesterday = new Date(today);
yesterday.setDate(today.getDate() - 1);
if (date.toDateString() === today.toDateString()) {
return '今天';
} else if (date.toDateString() === yesterday.toDateString()) {
return '昨天';
} else {
return '';
}
}
// 如果上一条日期不等于这一条日期,则添加日期(只计算日期,不计算时间)
if (!this.last || this.last.time.split(' ')[0] !== data.time.split(' ')[0]) {
this.ul.appendChild(ListItem({
style: { listStyle: 'none', maxWidth: '24rem', textAlign: 'center' },
children: [
Span({
style: {
display: 'inline-block',
padding: '.1rem .5rem',
marginTop: '2rem',
boxSizing: 'border-box',
boxShadow: '0 0 1rem #eee',
borderRadius: '1rem',
fontSize: '12px',
},
textContent: `${data.time.split(' ')[0]} ${convertTimestampToReadableTime(new Date(data.time).getTime())}`
})
]
}))
}
// 如果和上一条消息是同一人, 且时间间隔小于1小时, 则向上合并
// && new Date(time).getTime() - new Date(this.last.time).getTime() < 1000 * 60 * 60
console.log('添加一条消息', this.last, data)