Я пытаюсь показать относительное время с моментом js, несколько секунд go, 5 минут go, час go и т. Д. 1014 * ... Когда html отображает, показывает относительное время, я имею в виду, «несколько секунд» или «час» go, в зависимости от того, сколько лет комментарию, но он застревает в этом состоянии и никогда не обновляется.
Это мой код ... Есть предложения?
const components = new Set();
// Force update every component at the same time periodically
setInterval(() => {
for (const comp of components) {
comp.$forceUpdate();
}
}, 60000);
Vue.component("FromNow", {
template: '<span :title="title">{{ text }}</span>',
props: ["date"],
created() {
components.add(this);
},
destroyed() {
components.remove(this);
},
computed: {
text() {
return moment(this.date).fromNow();
},
title() {
return moment(this.date).format("dddd, MMMM Do YYYY, h:mm:ss a");
},
},
});
var app = new Vue({
el: "#app",
data() {
return {
comments: [
{
name: "Obedi1",
id: 1,
timestamp: 1587499864177,
content: "quia et suscipit\nsuscipit recusandae",
},
{
name: "Jhonj2",
id: 2,
timestamp: 1587499872202,
content: "quia et suscipit\nsuscipit recusandae",
},
{
name: "Janek3",
id: 3,
timestamp: 1587499898749,
content: "quia et suscipit\nsuscipit recusandae",
},
{
name: "Markl4",
id: 4,
timestamp: 1587499904071,
content: "quia et suscipit\nsuscipit recusandae",
},
],
};
},
});
<div id="app">
<div v-for="(comment, index) in comments" :key="index">
<h3>{{ comment.name }}</h3>
<from-now :date="comment.timestamp"></from-now>
<p>{{ comment.content }}</p>
<br />
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="main.js"></script>