美文网首页
订单支付倒计时处理方法记录

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

作者: laogui_ | 来源:发表于2020-02-16 20:20 被阅读0次

    实现情景是:在获取到订单详情后,页面上有一个订单支付倒计时显示 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 + '秒');

    }

    }

    相关文章

      网友评论

          本文标题:订单支付倒计时处理方法记录

          本文链接:https://www.haomeiwen.com/subject/wemmfhtx.html