我这里的倒计时数据是后台返回的
时间: 2024-03-02 16:52:25 浏览: 59
如果你的倒计时数据是后台返回的,那么可以考虑将倒计时结束的时间戳也一并返回给前端,这样前端就可以直接计算剩余的倒计时时间了。
具体来说,后台返回的数据中可以包含一个 `endTime` 字段,表示倒计时结束的时间戳。然后前端在执行倒计时的时候,先获取当前时间戳,然后再与 `endTime` 字段进行比较,得到剩余的倒计时时间。
具体的实现可以参考下面的代码:
```
execTime() {
if (this.data.datas == null || this.data.datas.length <= 0) return;
for (let i = 0; i < this.data.datas.length; i++) {
if (this.data.datas[i].type != 3) continue;
if (!this.data.datas[i].endTime) continue; // 没有倒计时结束的时间戳,则跳过
const now = new Date().getTime(); // 获取当前时间戳
const end = this.data.datas[i].endTime; // 获取倒计时结束的时间戳
let diff = end - now; // 计算当前时间与倒计时结束时间之间的差值
if (diff > 0) {
// 如果倒计时还未结束
this.setData({
['datas[' + i + '].countdownSecond']: Math.ceil(diff / 1000) // 向上取整,得到剩余的秒数
});
} else {
// 如果倒计时已经结束
this.setData({
['datas[' + i + '].countdownSecond']: 0
});
}
}
}
```
需要注意的是,这里假设后台返回的 `endTime` 字段是以毫秒为单位的时间戳。如果不是的话,需要将其转换为毫秒。