• js 计算倒计时


    第一个是我自己写的

    // t等于时间戳差  
      function changeTime(t) {
          let timeStr = ''
          let tmp = t/(24* 3600 * 1000)
          if (tmp > 1) timeStr = parseInt(tmp) + '天'
    
          if (tmp) {
            tmp = tmp.toString().split('.')[1]
    
            tmp = parseInt(tmp)
            tmp = t/(3600 * 1000)
    
            if (tmp>1) timeStr += parseInt(tmp) + '小时'
            tmp = tmp.toString().split('.')[1]
    
            tmp = parseInt(tmp)
            tmp = tmp/(1000 * 60)
            if (tmp>1) timeStr += parseInt(tmp) + '分钟'
    
            tmp = parseInt(tmp)
            tmp = tmp/1000
            if (tmp>1) timeStr += parseInt(tmp) + '秒'
    
          }
          return timeStr
        }
    

      计算结果不对, 因为余数取值错误 7÷3 = 2 ······1,如果用以上方法取余数,此时7÷3 = 2······33333,显然是不对的
    正确的方法后面补充。。。

    function getDjsTime (timestamp) {
      let t = timestamp - new Date().getTime()
      if (t<0) {
        return false
      }
      // 得到天数
      let days = parseInt(t / 1000 / 60 / 60 / 24)
      // 得到小时
      let hours = parseInt(t / 1000 / 60 / 60 % 24)
      // 得到分钟
      let minutes = parseInt(t / 1000 / 60 % 60)
      // 得到秒
      let seconds = parseInt(t / 1000 % 60)
    
      let timeStr = days + '天'
      timeStr += hours + '小时'
      timeStr += minutes + '分钟'
      timeStr += seconds + '秒'
    
      return timeStr
    }
    let d = '2020-10-1'
    djsTimeValue = getDjsTime()
    let inter = setInterval(_ => {
              let text = djsTime(d)
              if (text) {
                djsTimeValue = text
              } else {
                djsTimeValue = '超出投资时间'
                clearInterval(inter)
              }
            }, 1000)
        
    

      也可以写成setTimeout 方式

    function djsTime (timestamp) {
      let t = timestamp - new Date().getTime()
      if (t<0) {
        djsTimeValue = '投资时间结束'
      }
      // 得到天数
      let days = parseInt(t / 1000 / 60 / 60 / 24)
      // 得到小时
      let hours = parseInt(t / 1000 / 60 / 60 % 24)
      // 得到分钟
      let minutes = parseInt(t / 1000 / 60 % 60)
      // 得到秒
      let seconds = parseInt(t / 1000 % 60)
    
      let timeStr = days + ''
      timeStr += hours + '小时'
      timeStr += minutes + '分钟'
      timeStr += seconds + ''
    
      djsTimeValue = timeStr // 设置时间
      setTimeout(_ => {
         djsTime(timestamp)
      }, 1000)
    }
    djsTime (‘2020-10-1’) 直接调用即可

     还有一种维持djs函数独立的写法,我喜欢这种

    function djsTime (timestamp) {
      let t = timestamp - new Date().getTime()
      if (t<0) {
        return false
      }
      // 得到天数
      let days = parseInt(t / 1000 / 60 / 60 / 24)
      // 得到小时
      let hours = parseInt(t / 1000 / 60 / 60 % 24)
      // 得到分钟
      let minutes = parseInt(t / 1000 / 60 % 60)
      // 得到秒
      let seconds = parseInt(t / 1000 % 60)
    
      let timeStr = days + '天'
      timeStr += hours + '小时'
      timeStr += minutes + '分钟'
      timeStr += seconds + '秒'
    
      return timeStr
    }
    
    function test() {
          let timeStr = djsTimeFun()
          if (!timeStr) {
            djsTimeValue = timeStr // 设置时间
          } else {
            djsTimeValue = '超出投资时间' // 设置时间
          }
          setTimeout(_ => {
            test(timestamp)
          }, 1000)
    }
    test()
    

      

  • 相关阅读:
    第2节 2020.05.16 智能互联网之关键系统实践篇【二】
    如何学习系统架构
    cas机制学习
    乐观锁和悲观锁
    qps和tps计算
    brpc的channel和controller学习
    protobuf和brpc
    gflags学习
    一致性哈希学习
    cmake常用命令学习
  • 原文地址:https://www.cnblogs.com/zph666/p/8875126.html
Copyright © 2020-2023  润新知