【问题标题】:Javascript seconds to minutes and secondsJavascript秒到分钟和秒
【发布时间】:2011-04-13 14:11:06
【问题描述】:

这是一个常见问题,但我不知道如何解决。下面的代码运行良好。

var mind = time % (60 * 60);
var minutes = Math.floor(mind / 60);
         
var secd = mind % 60;
var seconds = Math.ceil(secd);

但是,当我达到 1 小时或 3600 秒时,它返回 0 分 0 秒。我怎样才能避免这种情况,以便它返回所有分钟?

【问题讨论】:

  • 那是因为当时间 = 3600 时,3600%3600 始终为 0...所以根据您的计算,其他所有内容都将为 0。

标签: javascript


【解决方案1】:

2020 年更新

使用基本的数学运算和简单的 javascript,只需几行代码即可完成。

示例 - 将 7735 seconds 转换为 HH:MM:SS


数学:

计算使用:

  1. Math.floor() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/floor

Math.floor() 函数返回小于或等于给定数字的最大整数。

  1. % 算术运算符(余数) - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators#Remainder

余数运算符返回一个操作数除以第二个操作数时的余数。它总是带有股息的符号。

查看下面的代码。秒除以3600得到小时数和余数,用于计算分钟数和秒数。

HOURS => 7735 / 3600 = 2 remainder 535

MINUTES => 535 / 60 = 8 remainder 55

SECONDS => 55


前导零:

这里的许多答案使用复杂的方法以正确的方式显示小时数、分钟数和秒数,前导零 - 4504 等。这可以使用 padStart() 完成。这适用于字符串,因此必须使用 toString() 将数字转换为字符串。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padStart

padStart() 方法用另一个字符串(多次,如果需要)填充当前字符串,直到结果字符串达到给定长度。从当前字符串的开头应用填充。


代码:

function secondsToTime(e){
    var h = Math.floor(e / 3600).toString().padStart(2,'0'),
        m = Math.floor(e % 3600 / 60).toString().padStart(2,'0'),
        s = Math.floor(e % 60).toString().padStart(2,'0');
    
    return h + ':' + m + ':' + s;
    //return `${h}:${m}:${s}`;
}

console.log(secondsToTime(7735));  // 02:08:55

/*
secondsToTime(SECONDS) // HH:MM:SS 

secondsToTime(8)       // 00:00:08 
secondsToTime(68)      // 00:01:08
secondsToTime(1768)    // 00:29:28
secondsToTime(3600)    // 01:00:00
secondsToTime(5296)    // 01:28:16
secondsToTime(7735)    // 02:08:55
secondsToTime(45296)   // 12:34:56
secondsToTime(145296)  // 40:21:36
secondsToTime(1145296) // 318:08:16
*/

【讨论】:

  • 这太干净了!较早的答案在我的口味中涉及太多的字符串/数组操作。
  • 很遗憾,您的代码错过了 1 秒,尝试转换 3599.99999998,这将返回 00:59:59,我们该如何解决?
  • 此代码适用于整数,这是最初的问题。对于小数,您需要进行更多计算。
【解决方案2】:

试试这个:
将秒转换为 HOURS、MIN 和 SEC。

function convertTime(sec) {
    var hours = Math.floor(sec/3600);
    (hours >= 1) ? sec = sec - (hours*3600) : hours = '00';
    var min = Math.floor(sec/60);
    (min >= 1) ? sec = sec - (min*60) : min = '00';
    (sec < 1) ? sec='00' : void 0;

    (min.toString().length == 1) ? min = '0'+min : void 0;    
    (sec.toString().length == 1) ? sec = '0'+sec : void 0;    
    
    return hours+':'+min+':'+sec;
}

【讨论】:

    【解决方案3】:

    您已经编写了足够的代码来跟踪时间的分钟和秒部分。

    你可以做的是添加小时因素:

    var hrd = time % (60 * 60 * 60);
    var hours = Math.floor(hrd / 60);
    
    var mind = hrd % 60;
    var minutes = Math.floor(mind / 60);
    
    var secd = mind % 60;
    var seconds = Math.ceil(secd);
    
    var moreminutes = minutes + hours * 60
    

    【讨论】:

    • 我尝试使用“时间”作为秒,但没有成功。例如,975 秒表示 hrd = 975,表示小时数为 16。
    【解决方案4】:

    strftime.js (strftime github) 是最好的时间格式化库之一。它非常轻 - 30KB - 并且有效。使用它,您可以在一行代码中轻松将秒转换为时间,主要依赖于原生 Date 类。

    创建新日期时,每个可选参数的位置如下:

    new Date(year, month, day, hours, minutes, seconds, milliseconds);
    

    因此,如果您初始化一个新的 Date 并将所有参数设置为零直到秒,您将得到:

    var seconds = 150;
    var date = new Date(0,0,0,0,0,seconds);
    => Sun Dec 31 1899 00:02:30 GMT-0500 (EST)
    

    您可以看到 150 秒是 2 分 30 秒,如创建日期所示。然后使用 strftime 格式(“%M:%S”代表“MM:SS”),它将输出您的分钟字符串。

    var mm_ss_str = strftime("%M:%S", date);
    => "02:30"
    

    在一行中,它看起来像:

    var mm_ss_str = strftime('%M:%S', new Date(0,0,0,0,0,seconds));
    => "02:30"
    

    另外,这将允许您根据秒数互换支持 HH:MM:SS 和 MM:SS。例如:

    # Less than an Hour (seconds < 3600)
    var seconds = 2435;
    strftime((seconds >= 3600 ? '%H:%M:%S' : '%M:%S'), new Date(0,0,0,0,0,seconds));
    => "40:35"
    
    # More than an Hour (seconds >= 3600)
    var seconds = 10050;
    strftime((seconds >= 3600 ? '%H:%M:%S' : '%M:%S'), new Date(0,0,0,0,0,seconds));
    => "02:47:30"
    

    当然,如果您希望时间字符串具有或多或少的语义,您可以简单地将您想要的任何格式传递给 strftime。

    var format = 'Honey, you said you\'d be read in %S seconds %M minutes ago!';
    strftime(format, new Date(0,0,0,0,0,1210));
    => "Honey, you said you'd be read in 10 seconds 20 minutes ago!"
    

    【讨论】:

      【解决方案5】:

      我更喜欢将毫秒视为它自己的单位,而不是其他东西的子单位。从这个意义上说,它将具有 0-999 的值,因此您将要填充三个而不是像我在其他答案中看到的那样填充两个。这是一个实现:

      function format(n) {
         let mil_s = String(n % 1000).padStart(3, '0');
         n = Math.trunc(n / 1000);
         let sec_s = String(n % 60).padStart(2, '0');
         n = Math.trunc(n / 60);
         return String(n) + ' m ' + sec_s + ' s ' + mil_s + ' ms';
      }
      

      https://developer.mozilla.org/Web/JavaScript/Reference/Global_Objects/String/padStart

      【讨论】:

        【解决方案6】:

        Day.js

        如果你使用day.js,试试这个。

        const dayjs = require('dayjs')
        const duration = require('dayjs/plugin/duration') 
        dayjs.extend(duration)
        
        const time = dayjs.duration(100, 'seconds')
        
        time.seconds() // 40
        time.minutes() // 1
        time.format('mm:ss') // 01:40
        

        【讨论】:

          【解决方案7】:
            function formatSeconds(s: number) {
              let minutes = ~~(s / 60);
              let seconds = ~~(s % 60);
              return minutes + ':' + seconds;
            }
          

          【讨论】:

          【解决方案8】:

          我发现的最简洁的方法只需一行即可完成:

          let timeString = `${timeInSeconds/60|0}:${timeInSeconds%60}`
          

          说明

          `${...}`
          Template literals。允许将表达式从字符串本身转换为字符串。
          注意:与 IE 不兼容。

          timeInSeconds/60|0
          将秒转换为分钟 (/60)。这给出了一个有理数。从这里它被截断使用bitwise OR (|0)

          timeInSeconds%60
          Remainder (modulo)。给出变量除以 60 的余数。


          小时

          此方法可以扩展为包括这样的时间:

          let timeString = `${timeInSeconds/60/60|0}:${timeInSeconds/60%60|0}:${timeInSeconds%60}`
          

          重复此过程,您甚至可以包含天数。

          【讨论】:

          • 我建立在你的版本上。添加尾随零:${resolution_duration_s / 60 | 0}:${resolution_duration_s % 60 &lt; 10 ? "0" : ""}${resolution_duration_s % 60} 并在分钟上添加尾随零:${resolution_duration_s / 60 &lt; 10 ? "0" : ""}${resolution_duration_s / 60 | 0}:${resolution_duration_s % 60 &lt; 10 ? "0" : ""}${resolution_duration_s % 60}
          【解决方案9】:

          Moment.js

          如果您使用的是 Moment.js,那么您可以使用内置的 Duration 对象

          const duration = moment.duration(4825, 'seconds');
          
          const h = duration.hours(); // 1
          const m = duration.minutes(); // 20
          const s = duration.seconds(); // 25
          

          【讨论】:

            【解决方案10】:

            另一个奇特的解决方案:

            function fancyTimeFormat(duration)
            {   
                // Hours, minutes and seconds
                var hrs = ~~(duration / 3600);
                var mins = ~~((duration % 3600) / 60);
                var secs = ~~duration % 60;
            
                // Output like "1:01" or "4:03:59" or "123:03:59"
                var ret = "";
            
                if (hrs > 0) {
                    ret += "" + hrs + ":" + (mins < 10 ? "0" : "");
                }
            
                ret += "" + mins + ":" + (secs < 10 ? "0" : "");
                ret += "" + secs;
                return ret;
            }
            

            ~~Math.floor 的简写,更多信息请参见this link

            Try online

            【讨论】:

            • ~~是什么意思?
            • 这是Math.floor 的基本缩写,参见this link
            • 它工作正常..... :) 你可以像这样舍入值 hrs = hrs.toFixed(0); mins = mins.toFixed(0); secs = secs.toFixed(0);
            • 感谢您的解决方案!我在第一行添加了time = math.round(time) 以给我四舍五入的秒数。
            • 这是更正确的解决方案。如上所述,此页面上得票最多的解决方案将 180 秒显示为 2m60s。
            【解决方案11】:

            2019 年最佳变体

            格式化hh:mm:ss

            console.log(display(60 * 60 * 2.5 + 25)) // 2.5 hours + 25 seconds
            
            function display (seconds) {
              const format = val => `0${Math.floor(val)}`.slice(-2)
              const hours = seconds / 3600
              const minutes = (seconds % 3600) / 60
            
              return [hours, minutes, seconds % 60].map(format).join(':')
            }

            【讨论】:

            • 嗯,seconds 是常量。你不能重新分配它。
            • @ronapelbaum 这个说法,不是常数,我不明白你的意思
            • 函数参数应被视为 const。当您使用 %= 时,您正在重新分配此参数。只需使用seconds%60
            • @ronapelbaum param 是否应该始终被视为 const?有时对于可能遭受突变的非数组/对象字面量不是很方便吗?
            • @RolandoMurillo 通常,纯函数更好。见stackoverflow.com/questions/41625399/…
            【解决方案12】:

            毕竟,还有另一个简单的解决方案:

            const time = new Date(null);
            time.setSeconds(7530);
            console.log(time.getHours(), time.getMinutes(), time.getSeconds());
            

            【讨论】:

            • 使用time.setSeconds(1); 返回1 0 1,而它应该是0 0 1
            【解决方案13】:

            使用 ES6 清理一个内衬

            
            const secondsToMinutes = seconds => Math.floor(seconds / 60) + ':' + ('0' + Math.floor(seconds % 60)).slice(-2);
            
            

            【讨论】:

              【解决方案14】:

              以下函数将帮助您获取 Days , Hours , Minutes , seconds

              toDDHHMMSS(inputSeconds){
                      const Days = Math.floor( inputSeconds / (60 * 60 * 24) );
                      const Hour = Math.floor((inputSeconds % (60 * 60 * 24)) / (60 * 60));
                      const Minutes = Math.floor(((inputSeconds % (60 * 60 * 24)) % (60 * 60)) / 60 );
                      const Seconds = Math.floor(((inputSeconds % (60 * 60 * 24)) % (60 * 60)) % 60 );
                      let ddhhmmss  = '';
                      if (Days > 0){
                          ddhhmmss += Days + ' Day ';
                      }
                      if (Hour > 0){
                          ddhhmmss += Hour + ' Hour ';
                      }
              
                      if (Minutes > 0){
                          ddhhmmss += Minutes + ' Minutes ';
                      }
              
                      if (Seconds > 0){
                          ddhhmmss += Seconds + ' Seconds ';
                      }
                      return ddhhmmss;
                  }
              alert( toDDHHMMSS(2000));
              

              【讨论】:

              • 我喜欢这个。我将if (Days &gt; 0){ ddhhmmss += Days + ' Day '; } 更改为if (Days &gt; 0) {ddhhmmss += Days === 1 ? Days + ' Day ' : Days + ' Days '};1 Day2 Days3 Days 等。其他人也可以这样做。
              • 我添加这个:ddhhmmss += Days + ` Day${Days > 1 ? 's' : ''} `;
              【解决方案15】:

              var seconds = 60;
              var measuredTime = new Date(null);
              measuredTime.setSeconds(seconds); // specify value of SECONDS
              var Time = measuredTime.toISOString().substr(11, 8);
              document.getElementById("id1").value = Time;
              <div class="form-group">
                <label for="course" class="col-md-4">Time</label>
                <div class="col-md-8">
                  <input type="text" class="form-control" id="id1" name="field">Min
                </div>
              </div>

              【讨论】:

                【解决方案16】:
                export function TrainingTime(props) {
                    const {train_time } = props;
                    const hours = Math.floor(train_time/3600);
                    const minutes = Math.floor((train_time-hours * 3600) / 60);
                    const seconds = Math.floor((train_time%60));
                
                    return `${hours} hrs  ${minutes} min  ${seconds} sec`;
                }
                

                【讨论】:

                【解决方案17】:

                另一个更优雅的解决方案如下:

                /**
                 * Convert number secs to display time
                 *
                 * 65 input becomes 01:05.
                 *
                 * @param Number inputSeconds Seconds input.
                 */
                export const toMMSS = inputSeconds => {
                    const secs = parseInt( inputSeconds, 10 );
                    let minutes = Math.floor( secs / 60 );
                    let seconds = secs - minutes * 60;
                
                    if ( 10 > minutes ) {
                        minutes = '0' + minutes;
                    }
                    if ( 10 > seconds ) {
                        seconds = '0' + seconds;
                    }
                
                    // Return display.
                    return minutes + ':' + seconds;
                };
                

                【讨论】:

                  【解决方案18】:

                  要获得完整的分钟数,请将总秒数除以 60(60 秒/分钟):

                  var minutes = Math.floor(time / 60);
                  

                  要获得剩余的秒数,请将整分钟乘以 60,然后从总秒数中减去:

                  var seconds = time - minutes * 60;
                  

                  现在如果你也想得到完整的小时数,先将总秒数除以 3600(60 分钟/小时·60 秒/分钟),然后计算剩余的秒数:

                  var hours = Math.floor(time / 3600);
                  time = time - hours * 3600;
                  

                  然后你计算完整的分钟和剩余的秒数。

                  奖金:

                  使用以下代码漂亮地打印时间(由 Dru 建议)

                  function str_pad_left(string,pad,length) {
                      return (new Array(length+1).join(pad)+string).slice(-length);
                  }
                  
                  var finalTime = str_pad_left(minutes,'0',2)+':'+str_pad_left(seconds,'0',2);
                  

                  【讨论】:

                  • 通过 'var seconds = time % 60' 获得剩余秒数会更简洁一些。
                  • @Radio 使用function str_pad_left(string,pad,length){ return (new Array(length+1).join(pad)+string).slice(-length); } var finalTime = str_pad_left(minutes,'0',2)+':'+str_pad_left(seconds,'0',2);添加前导零
                  • 否定time是什么意思?从逻辑上讲,时间差总是正的
                  • 您可以使用模数来获取秒数,我认为它更具可读性。 var seconds = time % 60
                  • 您可以使用内置的 JavaScript string.padStart() 方法用零填充单个数字。
                  【解决方案19】:
                  function secondsToMinutes(time){
                      return Math.floor(time / 60)+':'+Math.floor(time % 60);
                  }
                  

                  【讨论】:

                  • 这可以通过零填充秒来改善:function secondsToMinutes(time){ return Math.floor(0 / 60)+':'+('0'+Math.floor(0 % 60)).slice(-2); }
                  • 不错!谢谢@Kus。只是您可能想用time 替换这两个0,对吗?
                  • @mikey 哎呀!是的,function secondsToMinutes(time){ return Math.floor(time / 60) + ':' + ('0' + Math.floor(time % 60)).slice(-2) }
                  【解决方案20】:

                  把我的两分钱放进去:

                  function convertSecondsToMinutesAndSeconds(seconds){
                              var minutes;
                              var seconds;
                              minutes = Math.floor(seconds/60);
                              seconds = seconds%60;
                  
                              return [minutes, seconds];
                          }
                  

                  所以这个:

                  var minutesAndSeconds = convertSecondsToMinutesAndSeconds(101);
                  

                  会有以下输出:

                  [1,41];
                  

                  然后你可以像这样打印它:

                  console.log('TIME : ' +  minutesSeconds[0] + ' minutes, ' + minutesSeconds[1] + ' seconds');
                  
                  //TIME : 1 minutes, 41 seconds
                  

                  【讨论】:

                    【解决方案21】:

                    一个班轮(不按小时工作):

                     function sectostr(time) {
                        return ~~(time / 60) + ":" + (time % 60 < 10 ? "0" : "") + time % 60;
                     }
                    

                    【讨论】:

                      【解决方案22】:

                      对于希望快速简单且因此简短的解决方案将秒格式化为M:SS 的人们:

                      function fmtMSS(s){return(s-(s%=60))/60+(9<s?':':':0')+s}
                      

                      完成..
                      该函数接受Number(首选)String(2 个转换“惩罚”,您可以通过在函数调用的参数中添加+ 将其减半)对于s 如:fmtMSS(+strSeconds)),表示正整数秒 s 作为参数。

                      例子:

                      fmtMSS(    0 );  //   0:00
                      fmtMSS(   '8');  //   0:08
                      fmtMSS(    9 );  //   0:09
                      fmtMSS(  '10');  //   0:10
                      fmtMSS(   59 );  //   0:59
                      fmtMSS( +'60');  //   1:00
                      fmtMSS(   69 );  //   1:09
                      fmtMSS( 3599 );  //  59:59
                      fmtMSS('3600');  //  60:00
                      fmtMSS('3661');  //  61:01
                      fmtMSS( 7425 );  // 123:45
                      

                      细分:

                      function fmtMSS(s){   // accepts seconds as Number or String. Returns m:ss
                        return( s -         // take value s and subtract (will try to convert String to Number)
                                ( s %= 60 ) // the new value of s, now holding the remainder of s divided by 60 
                                            // (will also try to convert String to Number)
                              ) / 60 + (    // and divide the resulting Number by 60 
                                            // (can never result in a fractional value = no need for rounding)
                                            // to which we concatenate a String (converts the Number to String)
                                            // who's reference is chosen by the conditional operator:
                                9 < s       // if    seconds is larger than 9
                                ? ':'       // then  we don't need to prepend a zero
                                : ':0'      // else  we do need to prepend a zero
                              ) + s ;       // and we add Number s to the string (converting it to String as well)
                      }
                      

                      注意:可以通过在返回表达式前面加上 (0&gt;s?(s=-s,'-'):'')+ 来添加负范围(实际上,(0&gt;s?(s=-s,'-'):0)+ 也可以)。

                      【讨论】:

                      • 我建议将Math.floor(s) 添加到最后一行以获得更清晰的结果。无论如何工作得很好,谢谢!
                      • @PossessWithin: 不,您应该“将 Math.floor(s) 添加到最后一行”(故障-sn-p 的)有多种原因,最重要的是因为对于910 之间的值会引入一个错误,无需进一步修改;例如,如果您输入69.25,那么输出将是1:9 而不是1:09!这个函数(我明确指定了整数秒)旨在并精心制作为高性能运算工具/“引擎”(不是忍者高尔夫的大小),因此我认为给该引擎增加不必要的验证负担是不合适的/清理/过滤...
                      • ... 工作(如NaN+/-Infinity 等)和舍入选项,这应该由程序员在调用函数之前完成,基于关于应用程序可能遇到的特定需求和可能的输入值!如果您的有关预期输入值的领域知识表明您的特定用例几乎总是接收浮点值并且性能测试表明你的申请。如果您希望只修补正值的地板,您必须....
                      • ... 将 (9&lt;s?':':':0') 修改为 (10&gt;s?':0':':')(添加 1 个字符,但将 6 个真路径中的 5 个“牺牲”到假路径)或 (10&lt;=s?':':':0')(添加 2 个字符但保持 5 个出 6 条真实路径)。然后我建议将最后的尾随+s更改为+(s|0)而不是Math.floor(s),以免破坏not的美感需要解决并调用Math.floor 仍在整个 53 位+/-MAX_SAFE_INTEGER 范围内正常运行,而不是“仅”32 位(无符号)或31 位(有符号)范围!注意ABS(s)magnetude 保证小于 60,所以签名...
                      • ... 有符号位 OR 是安全的。另请注意,此特定修改不降低剩余秒数 将使函数输出小数秒而没有尾随小数零, 通常会有超过 3 个有效的非零小数位您可能也需要处理。最后,当与负范围的可选前缀代码结合使用时,此特定修改将有效地TRUNCate 秒(而不是FLOORing 它们)。 PS: PFFT, whoever came up with just 512 char limit for any meaningful comment should be...
                      【解决方案23】:

                      要添加前导零,我会这样做:

                      var minutes = "0" + Math.floor(time / 60);
                      var seconds = "0" + (time - minutes * 60);
                      return minutes.substr(-2) + ":" + seconds.substr(-2);
                      

                      又好又短

                      【讨论】:

                        【解决方案24】:

                        对于添加零,我真的不认为需要拥有一个完整的其他功能,您可以简单地使用例如

                        var mins=Math.floor(StrTime/60);
                        var secs=StrTime-mins * 60;
                        var hrs=Math.floor(StrTime / 3600);
                        RoundTime.innerHTML=(hrs>9?hrs:"0"+hrs) + ":" + (mins>9?mins:"0"+mins) + ":" + (secs>9?secs:"0"+secs);
                        

                        这就是为什么我们首先要有条件语句。

                        (condition?if true:if false) 所以如果示例秒数大于 9 而不仅仅是显示秒数,否则在其前面添加一个字符串 0。

                        【讨论】:

                          【解决方案25】:

                          你也可以使用原生的 Date 对象:

                          var date = new Date(null);
                          date.setSeconds(timeInSeconds);
                          
                          // retrieve time ignoring the browser timezone - returns hh:mm:ss
                          var utc = date.toUTCString();
                          // negative start index in substr does not work in IE 8 and earlier
                          var time = utc.substr(utc.indexOf(':') - 2, 8)
                          
                          // retrieve each value individually - returns h:m:s
                          var time = date.getUTCHours() + ':' + date.getUTCMinutes() + ':' +  date.getUTCSeconds();
                          
                          // does not work in IE8 and below - returns hh:mm:ss
                          var time = date.toISOString().substr(11, 8);
                          
                          // not recommended - only if seconds number includes timezone difference
                          var time = date.toTimeString().substr(0, 8);
                          

                          当然,此解决方案仅适用于 timeInSeconds 少于 24 小时 ;)

                          【讨论】:

                          • 没想到让 Date 对象处理格式。不太灵活,但如果你想要 hh:mm:ss (或其中的一部分),这很好
                          • 我尝试了 25 秒,结果返回 01:00:25,相当于 1 小时 25 秒。
                          • 是的,可能是因为您的时区。我已经更新了处理这种情况的解决方案。
                          • date 也可以构造为var date = new Date(timeInSeconds * 1000)
                          【解决方案26】:

                          秒到 h:mm:ss

                          var hours = Math.floor(time / 3600);
                          time -= hours * 3600;
                          
                          var minutes = Math.floor(time / 60);
                          time -= minutes * 60;
                          
                          var seconds = parseInt(time % 60, 10);
                          
                          console.log(hours + ':' + (minutes < 10 ? '0' + minutes : minutes) + ':' + (seconds < 10 ? '0' + seconds : seconds));
                          

                          【讨论】:

                          • 如果只有基本的 js 知识,谁能帮我解释一下minutes &lt; 10 ? '0' + minutes : minutes
                          • 如果分钟是个位数 (
                          • 这有帮助!我没有意识到“?”是js中的三元运算符。
                          【解决方案27】:

                          我正在考虑一种更快的方法来完成这项工作,这就是我想出的

                          var sec = parseInt(time);
                          var min=0;
                          while(sec>59){ sec-=60; min++;}
                          

                          如果我们要将“时间”转换为分秒,例如:

                          // time = 75,3 sec
                          var sec = parseInt(time); //sec = 75
                          var min=0;
                          while(sec>59){ sec-=60; min++;} //sec = 15; min = 1
                          

                          【讨论】:

                            猜你喜欢
                            • 2012-06-08
                            • 1970-01-01
                            • 1970-01-01
                            • 1970-01-01
                            • 2014-02-13
                            • 1970-01-01
                            • 2015-12-16
                            • 2015-03-23
                            相关资源
                            最近更新 更多