订单支付倒计时处理方法记录

实现情景是:在获取到订单详情后,页面上有一个订单支付倒计时显示 xx:xx:xx;需求是在订单创建后10分钟后如果没有支付就自动取消并显示倒计时时间。

倒计时使用了uniapp插件市场里的一个组件(组件地址:https://ext.dcloud.net.cn/plugin?id=772)


实现思路:

1:先获取当前时间戳:;

2:10分钟的毫秒数为10x60x1000毫秒,订单自动支付时间为=订单创建时间 + 10x60x1000毫秒 ;

3:订单自动支付时间 - 当前时间时间 =相差时间 ,如果相差时间大于10分钟则执行取消订单操作,否则则计算相差时间的时分秒进行显示倒计时;

程序设计:

// 计算支付倒计时

let nowtime = Date.parse(new Date()); //获取当前时间

let paytime = 10 * 60 * 1000 //10min的秒数,订单超过10分钟未支付就自动取消

let ctime = _this.data.create_time * 1000

let startTime = nowtime; // 开始时间

let endTime = new Date(ctime+paytime); // 结束时间

let usedTime = endTime-startTime ; // 相差的毫秒数

// console.log("【相差的毫秒数】", usedTime)

if (usedTime > paytime) {

_this.timeUp()  //取消订单操作函数

} else {

let days = Math.floor(usedTime / (24 * 3600 * 1000)); // 计算出天数

let leavel = usedTime % (24 * 3600 * 1000); // 计算天数后剩余的时间

let hours = Math.floor(leavel / (3600 * 1000)); // 计算剩余的小时数

let leavel2 = leavel % (3600 * 1000); // 计算剩余小时后剩余的毫秒数

let minutes = Math.floor(leavel2 / (60 * 1000)); // 计算剩余的分钟数

let miao = Math.floor(leavel2 / 1000 % 60)

if (days <= 0 && hours <= 0 && minutes <= 0 && miao <= 0) {

  _this.timeUp()  //取消订单操作函数

} else {

_this.hour = days * 24 + hours   //倒计时剩余小时

_this.minute = minutes  //倒计时剩余分钟

_this.second = miao  //倒计时剩余秒数

// console.log("剩余时间", (days * 24 + hours) + '小时' + minutes + '分' + miao + '秒');

}

}

你可能感兴趣的:(订单支付倒计时处理方法记录)