一个小问题 一个小问题

有以下评论数据,两个时间相减在格式化可以得到“X天后追加评论”
但是要怎样才可以求得X,计算属性好像可以,又写不来。

        list:[
          {
            ...
            time:1111,  //指首次评论时间
            againTime:2222 //指追加评论时间,为空则是没有追加评论
          },
          {
            ...
            time:1111,
            againTime:
          },
          {
            ...
            time:1111,
            againTime:3333
          },
        ]
阅读 1.7k
3 个回答

评论列表在输出的时候用v-for输出,所以这里假定每一个对象为item
在methods中写函数:

tdoa(time,againTime){
    let usedTime = againTime - time
    let days = Math.floor(usedTime/(24*3600*1000));
    return days
}

使用的时候用tdoa(item.time,item.againTime)就可以了

原理:列表中的时间应该都是时间戳 ,两个时间戳相减就是相差的毫秒数,然后换算成天就行了。

在渲染的时候需要考虑未追加评论的情况,所以在记得添加一条v-if="item.againTime"

这两个数据如果能保证都有的话,直接写到htmlui模板里面去,别在数据上纠结了.如果觉得业务可能会变,就把list.item当参数,写一个方法在模板里面引用

computed:{
    days(){
      return this.list.filter((t) => {
          return t.againTime - t.time;
      })
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题