onLoad(options) {
// 这个expirationTime是从待支付列表中点击支付按钮传递过来的时间戳参数
this.expirationTime = options.expirationTime;
// 如果没有这个时间戳参数,则代表是从创建订单的时候进入的此支付页面,默认为4500000时间。
var result = 45000000;
if(options.expirationTime){
var now=new Date();
var end=new Date(options.expirationTime);
// 用当前的时间与时间戳时间比较,如果到了时间戳时间,则代表倒计时结束,交易失败。
if(end-now > 45000000){
result=45000000;
}else{
result=Math.floor(end-now);
}
}
this.runBack(result);
},
methods:{
runBack(cm) {
if (cm > 0) {
cm > 60000?
(this.rocallTime =(new Date(cm).getMinutes() < 10? "0" + new Date(cm).getMinutes(): new Date(cm).getMinutes()) + ":" + (new Date(cm).getSeconds() < 10? "0" + new Date(cm).getSeconds(): new Date(cm).getSeconds()))
:
(this.rocallTime ="00:" +(new Date(cm).getSeconds() < 10 ? "0" + new Date(cm).getSeconds(): new Date(cm).getSeconds()));
let _msThis = this;
// 此处是一个递归,调用时间计时器函数,一秒时间减少一秒,一秒后继续调用当前函数,这就是函数的递归。
setTimeout(function() {
cm -= 1000;
_msThis.runBack(cm);
}, 1000);
} else {
this.ispay = false
}
},
}
时间戳转化为年月日时分秒效果
resolvingDate(date){
if(!date){
return;
}
//date是传入的时间
let d = new Date(date);
let month = (d.getMonth() + 1) < 10 ? '0'+(d.getMonth() + 1) : (d.getMonth() + 1);
let day = d.getDate()<10 ? '0'+d.getDate() : d.getDate();
let hours = d.getHours()<10 ? '0'+d.getHours() : d.getHours();
let min = d.getMinutes()<10 ? '0'+d.getMinutes() : d.getMinutes();
let sec = d.getSeconds()<10 ? '0'+d.getSeconds() : d.getSeconds();
let times;
times=d.getFullYear() + '-' + month + '-' + day + ' ' + hours + ':' + min + ':' + sec;
return times
}