Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 倒计时变量(HH:mm:ss)_Vue.js_Nativescript_Nativescript Vue - Fatal编程技术网

Vue.js 倒计时变量(HH:mm:ss)

Vue.js 倒计时变量(HH:mm:ss),vue.js,nativescript,nativescript-vue,Vue.js,Nativescript,Nativescript Vue,我解析一个日期yyy-mm-dd并计算到午夜的差值。结果将始终低于24小时,例如10:01:10-HH:mm:ss,直到过期。我想知道如何使用给定的示例实现倒计时功能 <template> <Label :text="date.expires | readableTime"></Label> </template> filters: { readableTime(value) { var

我解析一个日期yyy-mm-dd并计算到午夜的差值。结果将始终低于24小时,例如10:01:10-HH:mm:ss,直到过期。我想知道如何使用给定的示例实现倒计时功能

<template>
    <Label :text="date.expires | readableTime"></Label>
    </template>

    filters: {
        readableTime(value) {
          var now = moment(new Date());
          var end = moment(value);
          var diff = moment.duration(end.diff(now));
          try {
            return moment.utc(diff.as("milliseconds")).format("HH:mm:ss");
          } catch (e) {
            return "00:00:00";
          }
        }
      }

必须使用“使用计时器和反应数据”属性。我建议您保护组件数据的差异,在组件安装时启动计时器,并在销毁之前清除它

data() {
    return {
        diff: this.calculareDiff() 
    }
}

methods: {
    calculareDiff() {
        const now = moment(new Date());
        const end = moment(this.date.expires);
        this.diff = moment.duration(end.diff(now));
    }
},

mounted() {
    this.timer = setInterval(() => this.calculareDiff(), 1000)
},

beforeDestroy() {
    clearInterval(this.timer)
}

我认为Vue.nextTick与此无关。