嗨,伙计们,我在使用Dayjs相对时间时有个奇怪的问题
以前我用的是
var date = "2021-02-26 16:04:15";
moment(date).fromNow();相对时间总是按预期增长的。
20 minutes ago, then increase to 21 minutes ago, then increase to 22 minutes ago然而,当我使用dayjs时,相对时间并没有增加。它适用于页面加载,但从不增加。
import dayjs from 'dayjs';
import relativeTime from 'dayjs/plugin/relativeTime';
var date = "2021-02-26 16:04:15";
dayjs(date).fromNow();输出
20 minutes ago, and never increase. Just static有什么配置是我错过的,或者dayjs不提供相对时间的自动更新?
发布于 2022-04-18 07:56:53
经过我的研究,我相信和MomentJS相比,Day没有自动增量的相对时间。
因此,我只需要使用setTimeout自动发出事件每60秒包含最新的时间戳。
所有需要相对时间的地方都会被通知以更新状态。
Vue JS中的示例
app.js
created() {
let self = this;
this.timer = setInterval(function () { self.$eventBus.$emit("updateTimeLabel", new Date()); }, 60000);
},
beforeDestroy() {
clearInterval(this.timer)
}TimeLabel.vue
props: {
timestamp: {
type: String,
required: true,
},
},
data() {
return {
from_now: null,
};
},
created() {
this.from_now = this.$fromNow(this.timestamp);
// every one minute, app.js will emit event to update all TimeLabel.vue relative time
this.$eventBus.$on("updateTimeLabel", (datetime) => {
this.from_now = this.$fromNow(this.timestamp);
});
},
methods: {
$fromNow(timestamp) {
return dayjs.utc(timestamp.substring(0, 23)).local().fromNow();
},
}https://stackoverflow.com/questions/66382420
复制相似问题