记录一下小程序订单列表倒计时

非常感谢这位博友,这个分享解决我的问题;太棒了,有简单实用

onShow: function () {
    //拿到服务器时间
    var serverLocalDate = new Date().getTime();
    //调用函数开始计时
    this.serverLocalDate(serverLocalDate);
  },

	***************************
  //服务器系统时间开始计时
  serverLocalDate: function (serverLocalDate) {
    console.log(serverLocalDate)
    var _this = this;
    let newDate = serverLocalDate;
    _this.setData({
      servicetimeInterval: setInterval(function () { // 循环执行  
        newDate = (newDate / 1000 + 1) * 1000;
        _this.setData({
          systimestamp: newDate
        })
      }, 1000)  // 每秒执行一次以达到更新时间的目的
    })
  },

在 util 目录下创建一个 time.wxs 文件

var formatterTimer = function (systimestamp, compareTime) {
    var result = {};
    var nowTime = systimestamp; // 当前时间的时间戳 也就是系统时间戳

    var reg = getRegExp("-", "g"); // 获取正则表达式,全局替换
    var str = compareTime.replace(reg, '/'); // 时间格式转换
    // 将字符串转换成时间格式
    var timePublish = getDate(str).valueOf();

    var futureTime = getDate(timePublish).getTime(); // 比较时间的时间戳
    // 未来的时间减去现在的时间 ;
    var resTime = (futureTime - nowTime) / 1000;
    // 结束时间
    var zero = futureTime - nowTime;
    if (zero >= 0) { // 认为还没有到达结束的时间//这里处理倒计时
        var h = (Math.floor(resTime / 3600)) < 10 ? '0' + (Math.floor(resTime / 3600)) : (Math.floor(resTime / 3600));
        var m = (Math.floor(resTime / 60) % 60) < 10 ? '0' + (Math.floor(resTime / 60) % 60) : (Math.floor(resTime / 60) % 60);
        var s = (Math.floor(resTime % 60)) < 10 ? '0' + (Math.floor(resTime % 60)) : (Math.floor(resTime % 60));

        result = h + ':' + m + ':' + s;
        result.status = true;
    } else {

        result = '00:00:00';
        result.status = false;
    }
    return result;
};
module.exports = {
    formatterTimer: formatterTimer,
}

在 wxml 页面 调用 time.wxs

//引入
<wxs src="../../utils/time.wxs" module="countdown" />
//调用
<text class="time">{{countdown.formatterTimer(systimestamp,closeTime)}}</text>
  • 解释一下:
  • systimestamp ==> 系统时间。

closeTime ==> 你自己定义的 或 后台返回的结束时间 如 2020-12-17 15:22:33 请一定要按照这个格式。

其他的请看代码上的注释,写的很清楚了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值