Javascript 无法获取要自动更新的聊天时间戳

Javascript 无法获取要自动更新的聊天时间戳,javascript,Javascript,我有以下代码,没有刷新就无法更新聊天时间戳。我是javascript新手 功能时间间隔(日期){ var秒数=数学地板((新日期()-Date)/1000); var间隔=秒/31536000; 如果(间隔>1){ 返回数学。楼层(间隔)+“年”; } 间隔=秒/2592000; 如果(间隔>1){ 返回数学下限(间隔)+“月”; } 间隔=秒/86400; 如果(间隔>1){ 返回数学地板(间隔)+“天”; } 间隔=秒/3600; 如果(间隔>1){ 返回数学楼层(间隔)+“小时”; } 间

我有以下代码,没有刷新就无法更新聊天时间戳。我是javascript新手

功能时间间隔(日期){
var秒数=数学地板((新日期()-Date)/1000);
var间隔=秒/31536000;
如果(间隔>1){
返回数学。楼层(间隔)+“年”;
}
间隔=秒/2592000;
如果(间隔>1){
返回数学下限(间隔)+“月”;
}
间隔=秒/86400;
如果(间隔>1){
返回数学地板(间隔)+“天”;
}
间隔=秒/3600;
如果(间隔>1){
返回数学楼层(间隔)+“小时”;
}
间隔=秒/60;
如果(间隔>1){
返回数学楼层(间隔)+“分钟”;
}
返回数学地板(秒)+“秒”;
}
设置间隔(时间间隔,1000);
日变化率=24*60*60*1000;
log(timeSince(新日期(Date.now()-aDay));
log(timeSince(新日期(Date.now()-aDay*2));
const dates=新日期(message.timestamp)
如果(message.user===currentUser)位置='right';
const messageItem=`
${timeSince(dates)}

我试过:
setInterval(timeSince,1000)
设置间隔(timeSince(),1000)
设置间隔(timeSince(date,1000);
并在函数中的不同位置分别尝试,无法开始工作。

timeSince
只返回带持续时间的格式化字符串。在此函数上设置间隔实际上没有任何作用。您必须使用返回值

setInterval(function(){
    var time = timeSince(message.timestamp); 
    //You can use a better selector here, 
    //but without more information, this is the best I can do.
    document.getElementsByClassName("small")[0].innerHTML = time;
}, 1000);

找到了一半的解决方案。我必须在调用函数的函数下插入setInterval,timesince函数位于该函数下。现在,整个过程在我设置的时间间隔之后更新,而不仅仅是时间,但是设置1分钟的更新间隔对我来说很好。 显然,因为我在一个函数下有多个函数,所以setInterval不起作用,或者在我的例子中不起作用。 draw message是timeSince函数所在的函数 也许是因为我在没有得到正确的帮助之前没有提供这些信息 解决方案: 这:

或者这个:

  function getConversation(recipient) {
        $.getJSON(`/api/v1/message/?target=${recipient}`, function (data) {
            messageList.children('.message').remove();
            for (let i = data['results'].length - 1; i >= 0; i--) {
                drawMessage(data['results'][i]);
            }
            **setInterval(getConversation(recipient), 1000);**
            messageList.animate({scrollTop: messageList.prop('scrollHeight')});
        });
    
    }

谢谢David的帮助

谢谢你的输入。我试过了,但仍然没有成功。我保持原样,并更改了你的建议。也许我应该指出,上面所附的所有内容都是.js文件中的代码。在html中,它们在一个div中被调用,类为“messages”。上述代码的其余部分的结尾如下:……messageItem=
${timeSince(dates)}
${message.body}
;$(messageItem)。附加到(“#messages”);感谢您的耐心,代码放在html文件的底部我认为更新您的建议后的问题在console.log中,但无法解决
  function getConversation(recipient) {
        $.getJSON(`/api/v1/message/?target=${recipient}`, function (data) {
            messageList.children('.message').remove();
            for (let i = data['results'].length - 1; i >= 0; i--) {
                drawMessage(data['results'][i]);
            }
            **setInterval(getConversation(recipient), 1000);**
            messageList.animate({scrollTop: messageList.prop('scrollHeight')});
        });
    
    }