微信小程序:等待时长计时功能

总体思路

1.时间处理函数逻辑

​ 1.1 设置两个形参,分别代表页面请求到的时间和系统最新时间

​ 1.2 将两个时间转换为时间戳,并相减得出时间戳差

​ 1.3 根据时间戳差,分别取余,计算出天/时/分/秒,然后将数据拼接起来并返回

2.数据请求成功区间

​ 2.1 设置一个一秒钟就执行一次的定时器

​ 2.2 在定时器里获取当前最新时间,调用时间处理函数,将函数返回值赋值给applyTime变量(页面渲染时间)

3.离开页面时清理掉定时器

结构

	<text>等待时长:</text>
	//applyTime的值改变后,页面会自动渲染
	<text style="color:red">{{applyTime}}</text>
data:{
    // 页面渲染时间
    applyTime:"",
    // 定时器名
    loanTime:''
}


// 时间处理函数
tiemDispose: function (faultDate, completeTime) {
  let priorTime = Date.parse(new Date(faultDate));
  let nowTime = Date.parse(new Date(completeTime));
  let usedTime = nowTime - priorTime; //两个时间戳差
  // 计算天数
  let days = Math.floor(usedTime / (24 * 3600 * 1000));
  //计算小时
  let leave1 = usedTime % (24 * 3600 * 1000); 
  let hours = Math.floor(leave1 / (3600 * 1000));
  //计算分钟
  let leave2 = leave1 % (3600 * 1000); 
  let minutes = Math.floor(leave2 / (60 * 1000));
  // 计算秒数
  let leave3=leave2%(60*1000)
  let second=Math.floor(leave3 / 1000);
  // 拼接
  let time = days+"天" + hours+"时" + minutes+"分"+second+"秒";
  return time;
  },
      
      
      
      
   //  详情获取网络请求  //
  async _getOrderDetails(params,order) {
    //获取外部this指向
    var that=this;
    const res = await getOrderDetails()
    if (res.code === 200) {
      //that.data.loanTime小程序中定时器要这种命名方式才能清除
      that.data.loanTime=setInterval(function(){
        //获取最新时间
        var timestamp = Date.parse(new Date()); 
        that.setData({
          //请求来的时间res.data.make_date=2020-11-19 14:48:44
          applyTime:that.tiemDispose(res.data.make_date, timestamp)
        })
      },1000)
    }
  }

  /**
   * 生命周期函数--页面卸载时触发(离开页面)
   */
  onUnload: function (options) {
    //清除定时器
    clearInterval(this.data.loanTime)
  },
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湾流~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值