微信new Date()_bug多8小时

前文:最近在开发微信小程序有个需求最订单倒计时 Ok 撸代码:

   countDown(key, endTimeList, that,) {//倒计时函数
    /**
     * key 是setData 的属性名字
     * endTimeList 是结束时间列表
     */
    // 获取当前时间,同时得到活动结束时间数组
    let newTime = new Date().getTime();
    let countDownArr = [];
    // 对结束时间进行处理渲染到页面
    endTimeList.forEach(o => {
     let endTime = new Date(o).getTime();
      let obj = null;
      // 如果活动未结束,对时间进行处理
      if (endTime - newTime > 0) {
        let time = (endTime - newTime) / 1000;
        // 获取天、时、分、秒
        let day = parseInt(time / (60 * 60 * 24));
        let hou = parseInt(time % (60 * 60 * 24) / 3600);
        let min = parseInt(time % (60 * 60 * 24) % 3600 / 60);
        let sec = parseInt(time % (60 * 60 * 24) % 3600 % 60);
        obj =this.timeFormat(day)+':'+this.timeFormat(hou)+':'+this.timeFormat(min)+':'+this.timeFormat(sec)
      } else {//活动已结束,全部设置为'00'
        obj = "00:00:00"
      }
      countDownArr.push(obj);
    })
    // 渲染,然后每隔一秒执行一次倒计时函数
    that.setData({ [key]: countDownArr });
    // 函数内调用自身,,重复使用setTimeout 就每隔一秒调用一次了
    that.data.toTime=  setTimeout(() => { this.countDown(key, endTimeList, that) }, 1000);
  
  }

ok没问题啊 我安卓,ios,开发者工具调试都没有问题 好的提交一波。
几天过后产品来了 也开启我的奇幻之旅。。。。
主题进入主题 产品手机倒计时会多8个小时,但是我的并不会,都是用的苹果手机 奇怪了 于是翻阅文档 文档中都只是说云函数 时区问题引起的 但是我并没有用啊 再问度娘:‘new Date()’为什么多8小时 得出都只是说 ios下 时间中不能带‘-’** 不然会NAN 也不是我的问题啊**
记住这一点!! 也是他误导了我 我的时间能出来 只是多8小时 就忽略了时间格式的问题 思索再三 我又打印了哈 后台返回的时间格式 结果是带
‘_’
不是说是是NaN么 我再将格式装换了哈 在求毫秒值 奇迹发生了

在这里插入图片描述打印说明 111为未转换时间格式前 222为转换后
在这里插入图片描述
打印说明 111为未转换时间格式前 222为转换后
细心的同学会发现 在我的苹果6下 转换前后获取时间是一样的 但是在苹果8在相差8小时
我草这么神奇 我得记录哈 新萌开发记录 不知是否正确 望大佬指点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值