建设银行怎么招聘网站,哔哩哔哩网页版怎么退出账号,商旅网站建设,icp备案是什么意思需求
创建订单后15分钟内进行支付#xff0c;否则订单取消。 实现
思路#xff1a;
获取当前时间和支付超时时间#xff08;在创建时间的基础上增加15分钟即为超时时间#xff0c;倒计时多久根据自己的实际需求#xff0c;这里为15分钟#xff09;#xff0c;支付超时…需求
创建订单后15分钟内进行支付否则订单取消。 实现
思路
获取当前时间和支付超时时间在创建时间的基础上增加15分钟即为超时时间倒计时多久根据自己的实际需求这里为15分钟支付超时时间减去当前时间获取间隔的毫秒数ms1s 1000ms若为负数则表示订单超时若为正数表示未超时然后利用 setInterval 每过一秒间隔时间 -1000当间隔时间小于等于0时倒计时结束支付超时取消订单。
代码实现
data(){return {minutes: , //倒计时分钟seconds: , //倒计时秒isEnd: false, //支付超时}
}
methods: {// 倒计时countDown(){ // 当前时间let nowTime new Date()// 获取创建订单15分钟后的时间,this.payForm.create_time:订单创建时间let endTime new Date(this.payForm.create_time);endTime.setMinutes(endTime.getMinutes() 15) // 结束时间获取创建订单15分钟后的时间// 两个日期相差的时间戳以毫秒为单位1000ms 1slet totalTime endTime - nowTime// 结束时间大于现在的时间if(totalTime0){let timer setInterval(() {if (totalTime 0) {//获取分钟数let minutes Math.floor((((totalTime % (3600 * 24 * 1000)) / 1000) % 3600) / 60);//获取秒数let seconds Math.floor((((totalTime % (3600 * 24 * 1000)) / 1000) % 3600) % 60).toString().padStart(2, 0);;this.minutes minutesthis.seconds secondstotalTime - 1000;// console.log(totalTime)} else {clearInterval(timer); // 停止调用函数 this.isEnd true}}, 1000); }else{this.isEnd true}
}拓展
上面案例只需要进行分钟及秒的计算倒计时时间长点的话可能会涉及到天数及小时数的计算思路与上面案例相同了解天数及小时数的时间戳转换公式即可码代如下。
//totalTime: 时间间隔单位ms
let totalTime endTime - createTime
//获取天数
let day Math.floor(totalTime / 1000 / 3600 / 24);
//获取小时数
let h Math.floor((totalTime % (3600 * 24 * 1000)) / 1000 / 3600);