Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript秒到分和秒_Javascript - Fatal编程技术网

Javascript秒到分和秒

Javascript秒到分和秒,javascript,Javascript,这是一个常见的问题,但我不知道如何解决它。下面的代码工作正常 var mind = time % (60 * 60); var minutes = Math.floor(mind / 60); var secd = mind % 60; var seconds = Math.ceil(secd); 然而,当我到达1小时或3600秒时,它返回0分零秒。我怎样才能避免它返回所有分钟数 谢谢要获取完整分钟数,请将总秒数除以60(60秒/分钟): 要得到剩余的秒数,将完整的分钟数乘以60,然后从总秒

这是一个常见的问题,但我不知道如何解决它。下面的代码工作正常

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

var secd = mind % 60;
var seconds = Math.ceil(secd);
然而,当我到达1小时或3600秒时,它返回0分零秒。我怎样才能避免它返回所有分钟数


谢谢

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

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

var seconds = time - minutes * 60;
现在,如果您也想获得完整的小时数,请先将总秒数除以3600(60分钟/小时·60秒/分钟),然后计算剩余秒数:

var hours = Math.floor(time / 3600);
time = time - hours * 3600;
然后计算完整的分钟数和剩余的秒数

奖金:

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


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

您可以做的是将小时数添加到:

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

这将为您提供所需的信息。

您还可以使用本机日期对象:

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);

当然,此解决方案仅适用于小于24小时的时间间隔;)

另一个奇特的解决方案:

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;
}
const time = new Date(null);
time.setSeconds(7530);
console.log(time.getHours(), time.getMinutes(), time.getSeconds());
函数fancyTimeFormat(持续时间)
{   
//小时、分钟和秒
var hrs=~(持续时间/3600);
var分钟=~((持续时间%3600)/60);
var secs=~~持续时间%60;
//输出如“1:01”或“4:03:59”或“123:03:59”
var ret=“”;
如果(小时数>0){
ret+=“+hrs+”:“+(分钟<10?:”);
}
ret+=“+mins+”:“+(秒<10?:”);
ret+=“”+秒;
返回ret;
}
~~
数学地板的缩写,有关更多信息,请参阅


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

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
# 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"
秒到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));
var-hours=Math.floor(时间/3600);
时间-=小时*3600;
var分钟=数学下限(时间/60);
时间-=分钟*60;
var seconds=parseInt(时间%60,10);
log(小时+':'+(分钟<10?'0'+分钟:分钟)+':'+(秒<10?'0'+秒:秒));

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

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);
这就是为什么我们首先有条件语句


(条件?如果为真:如果为假)因此,如果示例秒数大于9,而不仅仅是显示秒数,则在其前面添加字符串0。

要添加前导零,我只需执行以下操作:

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

很好,很短

适合那些希望快速、简单、简短地将秒格式化为
M:SS的人:

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

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)
}
函数fmtMSS(s){//接受秒作为数字或字符串。返回m:ss
return(s-//获取值s并进行减法运算(将尝试将字符串转换为数字)
(s%=60)//s的新值,现在保留s的剩余部分除以60
//(还将尝试将字符串转换为数字)
)/60+(//并将结果数除以60
//(不会导致分数=不需要舍入)
//将字符串连接到其中(将数字转换为字符串)
//谁的参考由条件运算符选择:
9
注意:可以通过在返回表达式前面加上
(0>s?(s=-s,'-':'')+
来添加负范围(实际上,
(0>s?(s=-s,'-'):0)+

一行程序(不适用于小时):

功能扇区(时间){
返回~~(time/60)+“:”+(time%60<10?:“)+time%60;
}
把我的两分钱放进去:

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
试试这个: 将秒转换为小时、分钟和秒

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;
}
函数转换时间(秒){
var小时=数学地板(秒/3600);
(小时>=1)?秒=秒-(小时*3600):小时='00';
最小var=数学地板(第60节);
(分钟>=1)?秒=秒-(分钟*60):分钟='00';
(秒<1)?秒=00:无效0;
(min.toString().length==1)?min='0'+min:void 0;
(sec.toString().length==1)?sec='0'+sec:void 0;
返回时间+':'+分钟+':'+秒;
}
strftime.js()是最好的时间格式库之一。它非常轻-30KB-并且有效。使用它,您可以在一行代码中轻松地将秒转换为时间,这主要依赖于本机日期类

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

new Date(year, month, day, hours, minutes, seconds, milliseconds);
/**
 * 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;
};
因此,如果您初始化一个新日期,并且所有参数在几秒钟内都为零,您将得到:

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。例如:

// time = 75,3 sec
var sec = parseInt(time); //sec = 75
var min=0;
while(sec>59){ sec-=60; min++;} //sec = 15; min = 1
# 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"

希望这有帮助。

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

new Date(year, month, day, hours, minutes, seconds, milliseconds);
/**
 * 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;
};
var秒=60;
var measuredTime=新日期(空);
测量时间。设置秒(秒);//指定秒的值
var Time=measuredTime.toISOString().substr(11,8);
document.getElementById(“id1”)。值=时间

时间
分钟
2019最佳车型 格式
hh:mm:ss

console.log(显示(60*60*2.5+25))//2.5小时+25秒
功能显示(秒){
const format=val=>`0${Math.floor(val)}`.slice(-2)
常数小时=秒/3600
常数分钟=(秒%3600)/60
返回[h
/**
 * 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;
};
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`;
}
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));

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

const time = new Date(null);
time.setSeconds(7530);
console.log(time.getHours(), time.getMinutes(), time.getSeconds());
const duration = moment.duration(4825, 'seconds');

const h = duration.hours(); // 1
const m = duration.minutes(); // 20
const s = duration.seconds(); // 25
 const timerCountDown = async () => {
    let date = new Date();
    let time = date.getTime() + 122000;
    let countDownDate = new Date(time).getTime();
    let x = setInterval(async () => {
      let now = new Date().getTime();
      let distance = countDownDate - now;
      let days = Math.floor(distance / (1000 * 60 * 60 * 24));
      let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
      let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
      let seconds = Math.floor((distance % (1000 * 60)) / 1000);

      if (distance < 1000) {
        // ================== Timer Finished 
        clearInterval(x);
      }
    }, 1000);
  };
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';
}
  function formatSeconds(s: number) {
    let minutes = ~~(s / 60);
    let seconds = ~~(s % 60);
    return minutes + ':' + seconds;
  }
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