美文网首页
用dayjs库实现倒计时功能

用dayjs库实现倒计时功能

作者: 奇乐无穷大 | 来源:发表于2020-06-09 22:25 被阅读0次

遇到的问题和知识点:

1、找不到dayjs.duration()方法。原因是没有引入dayjs.extend(require('dayjs/plugin/duration'));若dayjs库中没有duration文件,重新执行npm install dayjs --save更新dayjs库;duration参考https://day.js.org/docs/en/plugin/duration,里面有dayjs的相关文档。

2、setInterval(功能语句或函数, 3000)定时器方法;与clearInterval(setInterval生成的定时器)停止定时器方法。

3、vue语法 `${ }` (模版字符串)

复制下面的vue代码放到工程里面打开即可看到效果。

<template>

    <div class="CountDown">

        {{ countObj.showTime }}

    </div>

</template>

<script>

import dayjs from 'dayjs';

dayjs.extend(require('dayjs/plugin/duration'));

export default {

    name: 'CountDown',

    data() {

        return {

            countObj: {

                endTime: dayjs().add(10, 'm').toISOString(),

                showTime: "00:10:00",

            },

            payTimer: null,

        }

    },

    mounted() {

        this.payTimer = setInterval(() => {

            this.countDown();

        }, 1000);

    },

    methods: {

        countDown() {

            let duration = dayjs.duration(dayjs(this.countObj.endTime) - dayjs());

            let hours = duration.hours();

            let minutes = duration.minutes() % 60 < 10 ? '0' + (duration.minutes() % 60) : duration.minutes() % 60;

            let seconds = duration.seconds() % 60 < 10 ? '0' + (duration.seconds() % 60) : duration.seconds() % 60;

            if (hours <= 0 && minutes <= 0 && seconds <= 0) {

                this.countObj.showTime = '倒计时结束';

                clearInterval(this.payTimer);

            } else {

                this.countObj.showTime = `${hours}:${minutes}:${seconds}`;

            }

        }

    }

}

</script>

相关文章

网友评论

      本文标题:用dayjs库实现倒计时功能

      本文链接:https://www.haomeiwen.com/subject/qokytktx.html