鸿蒙开发融云demo消息时间格式化

80 阅读2分钟
鸿蒙开发融云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源码结构图:

在这里插入图片描述

有问题或者需要完整源码demo的可以看简介联系我,也可以私信我,我每天都看私信的