Uniapp实现多个订单批量待付款倒计时
当客户不付款生成一个待付款的订单这个待付款的订单需要获取它30分钟后的时间然后保存到数据库然后前台将当前时间减去从数据库拿到的时间进行倒计时
·
Uniapp实现多个订单批量待付款倒计时
思路
当客户不付款生成一个待付款的订单这个待付款的订单需要获取它30分钟后的时间然后保存到数据库
然后前台将当前时间减去从数据库拿到的时间进行倒计时
注意 必须要24小时制的时间
首先准备一个times.js
/**
* 订单未付款 倒计时
* @param {*} time 结束时间
*/
function countDownFun(time) {
let startTime = new Date().getTime();
console.log("startTime:"+startTime)
// let startTime = new Date(); //当前时间
let end = new Date(time).getTime(); //结束时间
console.log("end:"+end)
// console.log(end)
let result = parseInt((end - startTime) / 1000); //计算出豪秒
let d = parseInt(result / (24 * 60 * 60)); //用总共的秒数除以1天的秒数
let h = parseInt((result / (60 * 60)) % 24); //精确小时,用去余
let m = parseInt((result / 60) % 60); //剩余分钟就是用1小时等于60分钟进行趣余
let s = parseInt(result % 60);
//统一格式的显示
d < 10 ? d = '0' + d : d;
h < 10 ? h = '0' + h : h;
m < 10 ? m = '0' + m : m;
s < 10 ? s = '0' + s : s;
//当倒计时结束时,改变内容
if (result <= 0) {
return "订单超时";
}
if (d == '00') {
return h + "时" + m + "分" + s + "秒";;
}
if (d == '00' && h == '00') {
return m + "分" + s + "秒";;
}
if (d == '00' && h == '00' && m == '00') {
return s + "秒";;
}
return d + "天" + h + "时" + m + "分" + s + "秒";
}
module.exports = {
countDownFun
}
方法(超时就重新获取一遍订单 times==你从后台获取的订单数据) toBePaid: []
timer(times) {
let that = this;
this.myInterv = setInterval(() => {
//reserveNo
times.forEach((item, index) => {
if (item.currentTime == '订单超时') {
let url = "http://localhost:9977/reserve/UpdatePaYstate"
uni.request({
url: url,
method: "post",
header: {
'content-type': 'application/x-www-form-urlencoded'
},
data: {
reserveNo: item.reserveNo,
},
success: (res) => {
//再查询一遍数据
that.getToBePaid(that.optionsid)
}
})
} else { //关键点 item.expiretime==你每次生成一个待付款的订单要把当前时间存储进数据库的时间
//必须要是24小时制不然会有问题
item.expiretime;
that.$set(item, 'currentTime', countDownFun(item.expiretime));
}
});
}, 1000);
},
后端
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd :HH:mm:ss");
long currentTime = System.currentTimeMillis();
currentTime += 30 * 60 * 1000;
Date dates = new Date(currentTime);
String format = dateFormat.format(dates);
更多推荐
已为社区贡献3条内容
所有评论(0)