鸿蒙开发融云demo消息时间格式化
融云没有提供鸿蒙版本带ui的,跟着我一步步搭建起来基本功能。
这次说消息时间格式化
一、消息时间格式化
先看下效果图:
二、关键代码:
看起来简单,但处理起来还是挺麻烦的
// 处理时间函数入口,传入正常时间格式,最终输入对应时间格式
export function handlerMsgTime(timeValue:number) {
timeValue = new Date(timeValue).getTime();
let timeNew = new Date().getTime(); // 当前时间
// console.log('传入的时间', timeValue, timeNew)
let timeDiffer = timeNew - timeValue; // 与当前时间误差
// console.log('时间差', timeDiffer)
let returnTime = "";
// if (timeDiffer <= 60000) {
// // 一分钟内
// returnTime = "刚刚";
// } else if (timeDiffer > 60000 && timeDiffer < 3600000) {
// // 1小时内
// returnTime = Math.floor(timeDiffer / 60000) + "分钟前";
// } else if (
// timeDiffer >= 3600000 &&
if (timeDiffer < 86400000 && isYestday(timeValue) === false) {
// 今日
returnTime = formatTime(timeValue).substr(11, 7);
} else if (timeDiffer > 3600000 && isYestday(timeValue) === true) {
// 昨天
returnTime = "昨天 " + formatTime(timeValue).substr(11, 7);
} else if (timeDiffer > 86400000 && timeDiffer <= 518400000) {
// 星期几,需求不想显示一周内的星期几
// returnTime =
// getWeeken(timeValue) +
// " " +
// formatTime(timeValue).substr(11, 5);
returnTime = formatTime(timeValue).substr(5, 13);
} else if (
timeDiffer > 86400000 &&
isYestday(timeValue) === false &&
isYear(timeValue) === true
) {
// 今年
returnTime = formatTime(timeValue).substr(5, 13);
} else if (
timeDiffer > 86400000 &&
isYestday(timeValue) === false &&
isYear(timeValue) === false
) {
// 不属于今年
returnTime = formatTime(timeValue).substr(0, 18);
}
return returnTime;
}
//其它辅助函数
function isYear(timeValue:number) {
// 是否为今年
const dateyear = new Date(timeValue).getFullYear();
const toyear = new Date().getFullYear();
// console.log(dateyear, toyear)
if (dateyear === toyear) {
return true;
} else {
return false;
}
}
function getWeeken(date:number) {
let weekArray = new Array(
"星期日",
"星期一",
"星期二",
"星期三",
"星期四",
"星期五",
"星期六"
);
let week = weekArray[new Date(date).getDay()];
return week;
}
鸿蒙融云Demo源码结构图:
有问题或者需要完整源码的私信我