美文网首页前端学习思考
js计算过去了多少分、秒、小时、天

js计算过去了多少分、秒、小时、天

作者: 宝妞儿 | 来源:发表于2019-12-27 13:31 被阅读0次

    最近做项目,有个需求是计算过去了多少天、小时、分、秒。

    这里有2种判断方法(第一种是网上借鉴过来的,忘了出处,第二种是朋友的想法)

    很懊恼!!。。自己都没想出来这些好的想法...js还是弱的不行..

    在此记录谨记一下!

    • 第一种:(值都大于对应的上限时,也是循环进行判断)
    /*
      @time(number): 时间值,单位s
      @return string: 表示过去了多少分、秒、小时、天 
    */
    function formateTime(time) {
      let day = '';
      let hour = '';
      let minute = '';
      let  seconds = '';
      
      if(time > 60){ //大于60s,即变成分钟+秒,
        minute = Math.floor(time/60);
        seconds = Math.floor(time % 60);
       if(minute > 60) { //大于60min,即变成小时+分钟... 由于255min
         hour = Math.floor(minute/60);
         minute =  Math.floor(minute%60);
       }
       if(hour > 24) { //大于24h,即变成天+小时...
         day = Math.floor(hour/24);
         hour = Math.floor(hour%24); 
       }
     }else {
      seconds = time;
    }
    
    let result = "";
    
    if(seconds > 0) {
      result = `${seconds}秒`;
    }
    if(minute>0) {
      result = `${minute}分钟` + result;
    }
    
    if(hour > 0) {
     result = `${hour}小时` + result;
    }
    
    if(day > 0) {
     result = `${day}天` + result;
    }
    return result;
    }
    

    比如当time = 15350时,

    进第一个分支,此时 minute = 15350/60 = 255min, seconds = 15350%60 = 50(秒)
    此时255 min 大于60,进入第二个分支, 此时hour = 255/60 = 4, minute = 15(分钟)
    第三个分支,hour > 60不满足,退出

    再走下面的输出最终结果的逻辑,即 输出: 4小时15分50s

    • 第二种:(值小于对应的上限时,递归进行判断)
    /*
      @time(number): 时间值,单位s
      @return string: 表示过去了多少分、秒、小时、天 
    */
    function formateTime(time) {
     let remainTime = 0; //剩余的时间
    
      if(time < 60) {
         return `${time}秒`
      } 
    
    let minute = Math.floor(time / 60);
    remainTime = time - minute * 60;
    if(minute <60) {
         return `${minute}分` + formate(remainTime);
     }
    }
    
    let hour =  Math.floor(time / 3600);
    remainTime = time - hour * 3600;
    if(hour < 24) {
       return `${hour}小时` + formate(remainTime);
     }
    
    let day =  Math.floor(time/3600/24);
    remainTime = time - day * 3600 * 24;
    return `${day}天` + formate(remainTime);
    

    相关文章

      网友评论

        本文标题:js计算过去了多少分、秒、小时、天

        本文链接:https://www.haomeiwen.com/subject/tsaroctx.html