花不多说,直接上代码
写的不好,还请指正
time是需要格式化的时间 ios日期请将 - 替换为 / chatsDate ture 是聊天页面历史记录列表的显示 默认false 是聊天列表的显示
function setTimeWeChat(time = null, chatsDate = false) {
if (!time) return
const weekList = ['周日', '周一', '周二', '周三', '周四', '周五', '周六'];
const today_now = new Date();
// 此刻的年月日时分秒
const today_date = {
year: today_now.getFullYear(),
month: (today_now.getMonth() + 1).toString().padStart(2, '0'),
day: today_now.getDate().toString().padStart(2, '0'),
hours: today_now.getHours().toString().padStart(2, '0'),
minutes: today_now.getMinutes().toString().padStart(2, '0'),
seconds: today_now.getSeconds().toString().padStart(2, '0'),
week: today_now.getDay(),
}
// 今天0点0分0秒的时间戳
const today_start = new
Date(`${today_date.year}/${today_date.month}/${today_date.day} 00:00:00`).getTime();
// 今天23点59分59秒的时间戳
const today_end = new Date(`${today_date.year}/${today_date.month}/${today_date.day} 23:59:59`).getTime();
// 昨天0点0分0秒的时间戳
const yesterday_start = today_start - 60 * 60 * 24 * 1000;
// 七天前0点0分0秒的时间戳
const week_start = today_start - 60 * 60 * 24 * 7 * 1000;
// 需要格式化的日期时间 iOS用replace(/-/g, '/')处理一下
const target_time = new Date(time);
// 需要格式化的日期时间的时间戳
const target_millisecond = target_time.getTime();
// 需要格式化的日期时间的年月日时分秒
const target_date = {
year: target_time.getFullYear(),
month: (target_time.getMonth() + 1).toString().padStart(2, '0'),
day: target_time.getDate().toString().padStart(2, '0'),
hours: target_time.getHours().toString().padStart(2, '0'),
minutes: target_time.getMinutes().toString().padStart(2, '0'),
seconds: target_time.getSeconds().toString().padStart(2, '0'),
week: target_time.getDay(),
}
// 如果目标时间小于今天的开始时间
let handleTime = '';
if (target_millisecond < week_start) { // 七天前
if (chatsDate) {
handleTime = target_date.year === today_date.year ? `${target_date.month}-${target_date.day}` :
`${target_date.year}-${target_date.month}-${target_date.day}`
} else {
handleTime = target_date.year === today_date.year ?
`${target_date.month}-${target_date.day} ${target_date.hours}:${target_date.minutes}` :
`${target_date.year}-${target_date.month}-${target_date.day} ${target_date.hours}:${target_date.minutes}`
}
} else if (target_millisecond >= week_start && target_millisecond < yesterday_start) { // 除去昨天的六天
// const weekList = i18n.t('calendar.weekList').split(',');
handleTime = `${weekList[target_date.week]} ${target_date.hours}:${target_date.minutes}`
} else if (target_millisecond >= yesterday_start && target_millisecond < today_start) { // 昨天
handleTime = `昨天 ${target_date.hours}:${target_date.minutes}`
} else if (target_millisecond >= today_start && target_millisecond <= today_end) { // 今天
handleTime = `${target_date.hours}:${target_date.minutes}`
} else { // 今天以后---昨天以前
if (chatsDate) {
handleTime = target_date.year === today_date.year ? `${target_date.month}-${target_date.day}` :
`${target_date.year}-${target_date.month}-${target_date.day}`
} else {
handleTime = target_date.year === today_date.year ?
`${target_date.month}-${target_date.day} ${target_date.hours}:${target_date.minutes}` :
`${target_date.year}-${target_date.month}-${target_date.day} ${target_date.hours}:${target_date.minutes}`
}
}
return handleTime
}
这是列表的时间显示