有个订单待支付,后端给一个时间戳1606981908
怎么转成半小时的倒计时
假如给定的时间戳是订单创建时间,那么拿着这个时间戳 加上30 60(时间戳为s, ms的话 再 1000),这里称之为订单过期时间。 再开启一个定时器,每秒执行,让订单创建时间+1, 直到大于等于过期时间,停止倒计时提示订单超时未支付。(这里如果存在退出订单再进入的话,就以当前时间 与 订单时间以及过期时间做对比),
若后端给的时间戳1606981908
为订单创建时间,代码如下:
countDown() {
let orderTime = 1606981908
let now = new Date()
let end = new Date(orderTime * 1000 + 30 * 60 * 1000) //提交创建时间+30分钟即是订单失效时间
let result = Math.floor(end - now) / 1000 //两个时间相减得到毫秒时间差,并转换成秒
let interval = setInterval(() => {
if (result > 1) {
result -= 1
let second = Math.floor(result % 60) // 计算秒
let minite = Math.floor((result / 60) % 60) //计算分
this.message = `支付剩余时间:${minite}分 ${second}秒`
} else{
//倒计时结束后
this.message = '未在规定时间内支付,订单已失效!'
window.clearInterval(interval);
}
},1000)
}
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
后端返回的是一个秒为单位的时间戳。