uniapp小程序 订单30分钟倒计时
时间: 2023-08-01 15:06:53 浏览: 178
实现订单30分钟倒计时的基本思路是:
1. 在订单创建时记录下订单的创建时间戳
2. 定义一个定时器,在每次进入订单详情页面时启动定时器,定时器每秒钟将当前时间戳与订单创建时间戳相减,得到剩余的秒数,然后将这个秒数转换为分钟和秒数的形式,显示在页面上
3. 当剩余时间为0时,停止定时器,并提示用户订单已超时
下面是一个简单的示例代码:
```
<template>
<view>
<text v-if="remainingTime > 0">{{ remainingMinutes }}:{{ remainingSeconds }}</text>
<text v-else>订单已超时</text>
</view>
</template>
<script>
export default {
data() {
return {
createTime: 0, // 订单创建时间戳
remainingTime: 0 // 剩余时间(秒)
}
},
mounted() {
// 获取订单创建时间戳
this.createTime = new Date().getTime()
// 启动定时器
this.timer = setInterval(() => {
const currentTime = new Date().getTime()
const diffTime = Math.floor((currentTime - this.createTime) / 1000)
this.remainingTime = 1800 - diffTime // 30分钟 = 1800秒
if (this.remainingTime <= 0) {
clearInterval(this.timer) // 停止定时器
}
}, 1000)
},
computed: {
remainingMinutes() {
return Math.floor(this.remainingTime / 60)
},
remainingSeconds() {
return this.remainingTime % 60
}
},
beforeDestroy() {
clearInterval(this.timer) // 组件销毁时停止定时器
}
}
</script>
```
在以上示例代码中,我们在页面挂载时获取订单创建时间戳,并启动定时器。在每次定时器执行时,计算当前时间戳与订单创建时间戳之间的差值,然后将这个差值转换为剩余时间,并将剩余时间显示在页面上。当剩余时间为0时,停止定时器,提示用户订单已超时。
阅读全文
相关推荐















