由于最近moment.js已经停止维护了,加上他本身确实有点大,只能找找其他的时间库了。

yarn add dayjs --dev

安装后我们引入:

import dayjs from "dayjs";
import duration from "dayjs/plugin/duration";
dayjs.extend(duration);
import "dayjs/locale/zh-cn";
dayjs.locale("zh-cn");

使用:

dayjs的计算,是需要用毫秒的,所以如何是s的时间戳,自己记得乘以1000。

制作倒计时我们需要两个值,一个是过期时间戳,一个是当前时间戳,当前时间戳可以通过Date.now()获取,过期则需要后端提供,假设过期时间为endTime

const diffTime = dayjs.duration(this.endTime * 1000 - dayjs());
const day = diffTime.days(); //天
const hours = diffTime.hours(); //小时
const minutes = diffTime.minutes(); //分钟
const seconds = diffTime.seconds(); //秒
return `${day}天${hours}小时${minutes}分${seconds}秒`;

dayjs()不传参的情况也是获取到当前的时间戳

通过duration计算出时间段,再依次获取:天、小时、分钟、秒

大部分属性和moment.js一致,然后我想说,妈的,dayjs那什么辣鸡官方文档,写了跟没写有什么区别,根本查不到任何有用的信息,全靠摸索,百度都没有文章,特别是中文版,一个字的有用信息都没有。

太失望了,还以为这玩意起码比moment的文档要好一些,然后,终究是错付了!

现在计算方法有了,定时器就自己写了,这还要写出来,那你基础很差哦!

分类: vue 项目实战 标签: vue倒计时dayjs

评论

全部评论 3

  1. 杰哥
    杰哥
    Google Chrome Windows 10
    竟然不写定时器膨胀了啊杰哥
    1. 木灵鱼儿
      木灵鱼儿
      FireFox Windows 10
      @杰哥我丢,你又来了
      1. 杰哥
        杰哥
        Google Chrome Windows 10
        @木灵鱼儿为什么要说“又”呢

目录