uniapp倒计时效果demo、时间戳转化为年月日时分秒效果demo(整理)

在这里插入图片描述

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
}

猜你喜欢

转载自blog.csdn.net/qq_38881495/article/details/133377046
今日推荐