首页 > 其他分享 >开发在线客服系统聊天界面,JS实现相邻两条消息之间间隔小于3分钟,就不展示消息时间

开发在线客服系统聊天界面,JS实现相邻两条消息之间间隔小于3分钟,就不展示消息时间

时间:2023-04-17 23:26:41浏览次数:37  
标签:界面 show JS 时间 消息 time row

我在开发一个客服聊天界面,每条消息都有发送时间,我想要实现相邻两条消息之间间隔小于3分钟的就不展示发送时间.

下面就是消息的JSON结构,里面的time就是发送时间

message = {
  "msg_id": 629255,
  "time": "2023-02-11 00:41:04",
  "content": "chatGPT",
  "mes_type": "visitor",
  "name": "山东聊城",
  "avator": "/static/images/computer.png",
  "read_status": "read"
};

下面的msgList就是消息的数组,当前 i 的时间,与 i+1 的时间取差值,小于3分钟的,就把show_time设置为false

这样在界面上渲染,循环数组的时候,判断show_time来决定是否展示时间

                    for(var i=0;i<msgList.length;i++) {if((i+1)<msgList.length){
                            const nextTime = new Date(msgList[i+1]["time"]).getTime();
                            const currTime = new Date(row["time"]).getTime();
                            if((currTime-nextTime)>=180000){
                                row.show_time=true;
                            }else{
                                row.show_time=false;
                            }
                        }
                        _this.msgList.unshift(row);
                    }

 

标签:界面,show,JS,时间,消息,time,row
From: https://www.cnblogs.com/taoshihan/p/17327913.html

相关文章

  • RobotJS截取屏幕screen.capture踩坑
    调用robot.screen.capture()或robot.screen.capture(0,0,1920,1080),返回的Bitmap对象是色彩格式是BGR色彩,这导致了如果未经处理就直接生成图像,色彩会产生错误,只需将BGR色彩转换成RGB色彩即可。constrobot=require('robotjs');constjimp=require("jimp");constswapR......
  • ubuntu 卡在启动界面
    安装后提示重启动,我重启动后到了紫色背景的ubuntu启动界面,卡在那里,十分钟没有任何反应。我重新安装,可怎么安都这样。 现象: 根本不进系统是这个样子滴红色背景一个ubuntu屹立在中间底下5个红点  解决方法: 开机编辑启动菜单,把quietsplash去掉再启动,看看停在什么地方 ......
  • js类型判断
    varabc;if(typeofabc==undefined){//这里执行不到}if(abc===undefined){//这里可以执行到}//这样是正确的。if(typeofabc==="undefined"){//这样也是正确的。}这说明typeof返回的是个字符串。......
  • cocos-js 播放cocos studio创建的时间轴场景动画
    ctor:1、加载场景动画json2、把场景动画的node添加到层3、找到运动的node4、关联动画和nodeload.node.runAction(load.action)播放:this._load.action.gotoFrameAndPlay(0,100,false);如果需要改变运动的node下面的子节点,可以把子节点removeFromParent然后创建一个新的Sp......
  • cocos2dx-js 帧动画的播放方法
    ctor:varload=ccs.load(res.Ani_json);varmainNode=load.node;this.addChild(mainNode);//对应帧动画的节点,使用seekWidgetByName无效,需要用getChildByNamethis._spriteAni=mainNode.getChildByName("spriteAni");this._spriteAni.setVisible(false);this._lo......
  • 屏蔽本层以下的层的touch消息
    if(!this._listenerShield){varlistener=cc.EventListener.create({event:cc.EventListener.TOUCH_ONE_BY_ONE,swallowTouches:true,onTouchBegan:function(touch,event){ret......
  • JS特殊用法
     --集合排序//排序//打印排序前集合console.log("排序前:"+data);for(vari=0;i<data[0].length;i++){ for(varj=0;j<data[0].length-1-i;j++){ //相邻元素两两对比,元素交换,大的元素交换到后面 if(data[1][j]+data[2][j]<data[1][j+1]+data[2][j+1]){// <为升序排列,降序请......
  • 记录-js基础练习题
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助隔行换色(%):window.onload=function(){varaLi=document.getElementsByTagName('li');for(vari=0;i<aLi.length;i++){if(i%2==1){ aLi[i].style.background='#bfa';......
  • js判断是否手机模式
    functionautoLoad(){varsUserAgent=navigator.userAgent.toLowerCase();varbIsIpad=sUserAgent.match(/ipad/i)=="ipad";varbIsIphoneOs=sUserAgent.match(/iphoneos/i)=="iphoneos"......
  • js EventLoop事件循环机制
    1、js是单线程语言,其事件分为:同步任务和异步任务,异步任务分为宏任务与微任务;2、执行顺序为:同步任务(主流程任务)--->微任务 ---->宏任务先执行同步任务,遇到异步任务则放入任务队列中,等同步任务执行完毕,执行任务队列中的微任务,再执行宏任务...主线程从"任务队列"中读取事件,这......