需求描述
因本需求针对投票功能,通过调取接口获取投票功能的结束投票时间(时间可存数据库),即倒计时的结束时间。当然,如果没有获取时间的接口,也可以直接在项目代码中给定结束时间,只不过在结束时间需要改动的情况下需要修改业务代码,不太好维护。
方案制定
- 声明变量(结束投票时间)
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