微信小程序使用setInterval实现倒计时功能(好像有点简单)

需求描述

因本需求针对投票功能,通过调取接口获取投票功能的结束投票时间(时间可存数据库),即倒计时的结束时间。当然,如果没有获取时间的接口,也可以直接在项目代码中给定结束时间,只不过在结束时间需要改动的情况下需要修改业务代码,不太好维护。

方案制定

  • 声明变量(结束投票时间)
    data: {
         
      timeData: {
         
        hour: null, // 时
        min: null, // 分
        second: null // 秒
      }, // 在页面上展示的变量
      endTime: '' // 结束投票时间
    }
    
  • 获取数据:
    • 从接口返回的数据中解构出投票结束时间
    • 获取当前时间 (nowTime),使用 new Date().getTime() 获取当前时间戳(以毫秒为单位)
    • 将结束时间转换为时间戳
    computedTime () {
         
      let {
          endTime, timeData } = this.data
      const nowTime = new Date().getTime() // 当前时间戳
      let end = new Date(endTime).getTime() // 结束时间时间戳
      let totalSeconds = (end - nowTime) / 1000 // 从当前时间到结束时间的总秒数
      timeData.hour = (Math.floor(totalSeconds / 3600) < 0 ? 0 : Math.floor(totalSeconds / 3600)).toString().padStart(2, '0')
      timeData.min = (Math.floor((totalSeconds % 3600) / 60) < 0 ? 0 : Math.floor((totalSeconds % 3600) / 60)).toString().padStart(2, '0')
      timeData.second 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值